diff options
-rw-r--r-- | altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java | 14 | ||||
-rw-r--r-- | altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java | 13 | ||||
-rw-r--r-- | altoslib/AltosMap.java | 8 | ||||
-rw-r--r-- | altoslib/AltosMapCache.java | 78 | ||||
-rw-r--r-- | altoslib/AltosMapInterface.java | 2 | ||||
-rw-r--r-- | altoslib/AltosMapLoader.java | 72 | ||||
-rw-r--r-- | altoslib/AltosMapStore.java | 47 | ||||
-rw-r--r-- | altoslib/AltosMapTile.java | 64 | ||||
-rw-r--r-- | altoslib/AltosMapTileListener.java | 2 | ||||
-rw-r--r-- | altosuilib/AltosUIMapNew.java | 18 | ||||
-rw-r--r-- | altosuilib/AltosUIMapPreloadNew.java | 9 |
11 files changed, 146 insertions, 181 deletions
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java index bde80cfc..ab142b17 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java @@ -133,7 +133,7 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal if (canvas.quickReject(pt.x, pt.y, pt.x + px_size, pt.y + px_size, Canvas.EdgeType.AA)) return; - AltosImage altos_image = cache.get(this, store, px_size, px_size); + AltosImage altos_image = this.get_image(); MapImage map_image = (MapImage) altos_image; @@ -150,8 +150,8 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal if (t.has_location()) { String message = null; switch (status) { - case AltosMapTile.loading: - message = "Loading..."; + case AltosMapTile.fetching: + message = "Fetching..."; break; case AltosMapTile.bad_request: message = "Internal error"; @@ -181,14 +181,14 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal } } - public MapTile(AltosMapTileListener listener, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { - super(listener, upper_left, center, zoom, maptype, px_size, 2); + public MapTile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { + super(cache, upper_left, center, zoom, maptype, px_size, 2); } } - public AltosMapTile new_tile(AltosMapTileListener listener, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { - return new MapTile(listener, upper_left, center, zoom, maptype, px_size); + public AltosMapTile new_tile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { + return new MapTile(cache, upper_left, center, zoom, maptype, px_size); } public AltosMapPath new_path() { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java index 87f03a92..13a44e1f 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java @@ -107,7 +107,6 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe } AltosMap map; - AltosMapLoader loader; class PreloadMapImage implements AltosImage { public void flush() { @@ -137,14 +136,14 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe public void paint(AltosMapTransform t) { } - public PreloadMapTile(AltosMapTileListener listener, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { - super(listener, upper_left, center, zoom, maptype, px_size, 2); + public PreloadMapTile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { + super(cache, upper_left, center, zoom, maptype, px_size, 2); } } - public AltosMapTile new_tile(AltosMapTileListener listener, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { - return new PreloadMapTile(listener, upper_left, center, zoom, maptype, px_size); + public AltosMapTile new_tile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { + return new PreloadMapTile(cache, upper_left, center, zoom, maptype, px_size); } public int width() { @@ -265,7 +264,7 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe AltosDebug.debug("PreloadMap load %f %f %d %d %f %d\n", lat, lon, min, max, r, t); - loader.load(lat, lon, min, max, r, t); + new AltosMapLoader(map, this, lat, lon, min, max, r, t); } catch (ParseException e) { AltosDebug.debug("PreloadMap load raised exception %s", e.toString()); } @@ -398,8 +397,6 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe map = new AltosMap(this); - loader = new AltosMapLoader(map, this); - // Listen for GPS and Network position updates LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); diff --git a/altoslib/AltosMap.java b/altoslib/AltosMap.java index 26851e96..1841277f 100644 --- a/altoslib/AltosMap.java +++ b/altoslib/AltosMap.java @@ -328,7 +328,8 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { if (!tiles.containsKey(point)) { AltosLatLon ul = transform.lat_lon(point); AltosLatLon center = transform.lat_lon(new AltosPointDouble(x + AltosMap.px_size/2, y + AltosMap.px_size/2)); - AltosMapTile tile = map_interface.new_tile(this, ul, center, zoom, maptype, px_size); + AltosMapTile tile = map_interface.new_tile(cache, ul, center, zoom, maptype, px_size); + tile.add_listener(this); tiles.put(point, tile); } } @@ -345,11 +346,6 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { centre(lat, lon); tiles.clear(); make_tiles(); - for (AltosMapTile tile : tiles.values()) { - tile.add_store_listener(this); - if (tile.store_status() != AltosMapTile.loading) - listener.notify_tile(tile, tile.store_status()); - } repaint(); } diff --git a/altoslib/AltosMapCache.java b/altoslib/AltosMapCache.java index 17a36ff3..38e0f769 100644 --- a/altoslib/AltosMapCache.java +++ b/altoslib/AltosMapCache.java @@ -23,25 +23,20 @@ import java.net.*; public class AltosMapCache implements AltosMapCacheListener { /* An entry in the MapCache */ - class MapCacheElement implements AltosMapStoreListener { + class MapCacheElement implements AltosMapTileListener { AltosMapTile tile; /* Notify when image has been loaded */ AltosImage image; - AltosMapStore store; long used; class loader implements Runnable { public void run() { - if (image != null) - tile.notify_image(image); - try { - image = map_interface.load_image(store.file); - } catch (Exception ex) { + if (image == null) { + try { + image = map_interface.load_image(tile.store.file); + } catch (Exception ex) { + } } - if (image == null) - tile.set_status(AltosMapTile.failed); - else - tile.set_status(AltosMapTile.success); tile.notify_image(image); } } @@ -60,41 +55,21 @@ public class AltosMapCache implements AltosMapCacheListener { } public boolean has_map() { - return store.status() == AltosMapTile.success; + return tile.status == AltosMapTile.loaded; } - public synchronized void notify_store(AltosMapStore store, int status) { - switch (status) { - case AltosMapTile.loading: - break; - case AltosMapTile.success: + public synchronized void notify_tile(AltosMapTile tile, int status) { + if (status == AltosMapTile.fetched) { + System.out.printf("tile fetched, loading image\n"); load(); - break; - default: - tile.set_status(status); - tile.notify_image(null); } } - public MapCacheElement(AltosMapTile tile, AltosMapStore store) throws IOException { + public MapCacheElement(AltosMapTile tile) { this.tile = tile; this.image = null; - this.store = store; this.used = 0; - - int status = store.status(); - switch (status) { - case AltosMapTile.loading: - store.add_listener(this); - break; - case AltosMapTile.success: - load(); - break; - default: - tile.set_status(status); - tile.notify_image(null); - break; - } + tile.add_listener(this); } } @@ -135,7 +110,7 @@ public class AltosMapCache implements AltosMapCacheListener { } } - public AltosImage get(AltosMapTile tile, AltosMapStore store, int width, int height) { + public AltosImage get(AltosMapTile tile) { int oldest = -1; long age = used; @@ -148,7 +123,7 @@ public class AltosMapCache implements AltosMapCacheListener { oldest = i; break; } - if (store.equals(element.store)) { + if (tile.store.equals(element.tile.store)) { element.used = used++; return element.image; } @@ -158,24 +133,15 @@ public class AltosMapCache implements AltosMapCacheListener { } } - try { - element = new MapCacheElement(tile, store); - element.used = used++; - if (elements[oldest] != null) - elements[oldest].flush(); + element = new MapCacheElement(tile); + element.used = used++; + if (elements[oldest] != null) + elements[oldest].flush(); - elements[oldest] = element; - - if (element.image == null) - tile.set_status(AltosMapTile.loading); - else - tile.set_status(AltosMapTile.success); - - return element.image; - } catch (IOException e) { - tile.set_status(AltosMapTile.failed); - return null; - } + elements[oldest] = element; + System.out.printf("AltosMapCache.get image ? %s\n", + element.image == null ? "false" : "true"); + return element.image; } } diff --git a/altoslib/AltosMapInterface.java b/altoslib/AltosMapInterface.java index 71936ad2..756a78f2 100644 --- a/altoslib/AltosMapInterface.java +++ b/altoslib/AltosMapInterface.java @@ -29,7 +29,7 @@ public interface AltosMapInterface { public abstract AltosMapMark new_mark(double lat, double lon, int state); - public abstract AltosMapTile new_tile(AltosMapTileListener listener, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size); + public abstract AltosMapTile new_tile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size); public abstract int width(); diff --git a/altoslib/AltosMapLoader.java b/altoslib/AltosMapLoader.java index 15fd756e..7112a1c4 100644 --- a/altoslib/AltosMapLoader.java +++ b/altoslib/AltosMapLoader.java @@ -24,7 +24,7 @@ import java.lang.Math; import java.net.URL; import java.net.URLConnection; -public class AltosMapLoader implements AltosMapTileListener, AltosMapStoreListener { +public class AltosMapLoader extends Thread implements AltosMapTileListener { AltosMapLoaderListener listener; double latitude, longitude; @@ -91,10 +91,8 @@ public class AltosMapLoader implements AltosMapTileListener, AltosMapStoreListen AltosPointInt point = new AltosPointInt(x, y); AltosLatLon ul = transform.lat_lon(point); AltosLatLon center = transform.lat_lon(new AltosPointDouble(x + AltosMap.px_size/2, y + AltosMap.px_size/2)); - AltosMapTile tile = map.map_interface.new_tile(this, ul, center, zoom, maptype, AltosMap.px_size); - tile.add_store_listener(this); - if (tile.store_status() != AltosMapTile.loading) - notify_tile(tile, tile.store_status()); + AltosMapTile tile = map.map_interface.new_tile(null, ul, center, zoom, maptype, AltosMap.px_size); + tile.add_listener(this); } } } @@ -123,7 +121,7 @@ public class AltosMapLoader implements AltosMapTileListener, AltosMapStoreListen do_load(); } - private void start_load() { + public void run() { cur_z = min_z; int ntype = 0; @@ -138,66 +136,64 @@ public class AltosMapLoader implements AltosMapTileListener, AltosMapStoreListen cur_type = next_type(0); + tiles_total = 0; for (int z = min_z; z <= max_z; z++) - tiles_total += tiles_per_layer(z); + tiles_total += tiles_per_layer(z) * ntype; layers_total = (max_z - min_z + 1) * ntype; layers_loaded = 0; tiles_loaded_total = 0; - listener.debug("total tiles %d\n", tiles_total); + listener.debug("total tiles %d layers %d\n", tiles_total, layers_total); listener.loader_start(tiles_total); do_load(); } - public void load(double latitude, double longitude, int min_z, int max_z, double radius, int all_types) { - listener.debug("lat %f lon %f min_z %d max_z %d radius %f all_types %d\n", - latitude, longitude, min_z, max_z, radius, all_types); - this.latitude = latitude; - this.longitude = longitude; - this.min_z = min_z; - this.max_z = max_z; - this.radius = radius; - this.all_types = all_types; - start_load(); - } - - public synchronized void notify_store(AltosMapStore store, int status) { + public synchronized void notify_tile(AltosMapTile tile, int status) { boolean do_next = false; - if (status == AltosMapTile.loading) + if (status == AltosMapTile.fetching) return; + tile.remove_listener(this); + if (layers_loaded >= layers_total) return; ++tiles_loaded_total; ++tiles_loaded_layer; + listener.debug("AltosMapLoader.notify_tile status %d total %d of %d layer %d of %d\n", + status, tiles_loaded_total, tiles_total, tiles_loaded_layer, tiles_this_layer); + if (tiles_loaded_layer == tiles_this_layer) { ++layers_loaded; listener.debug("%d layers loaded\n", layers_loaded); - if (layers_loaded == layers_total) { - listener.loader_done(tiles_total); - return; - } else { - do_next = true; - } + do_next = true; } - listener.loader_notify(tiles_loaded_total, - tiles_total, store.file.toString()); - if (do_next) - next_load(); - } - public synchronized void notify_tile(AltosMapTile tile, int status) { - notify_store(tile.store, status); + if (tiles_loaded_total == tiles_total) + listener.loader_done(tiles_total); + else { + listener.loader_notify(tiles_loaded_total, + tiles_total, tile.store.file.toString()); + if (do_next) + next_load(); + } } - public AltosMapCache cache() { return map.cache(); } - - public AltosMapLoader(AltosMap map, AltosMapLoaderListener listener) { + public AltosMapLoader(AltosMap map, AltosMapLoaderListener listener, + double latitude, double longitude, int min_z, int max_z, double radius, int all_types) { + listener.debug("lat %f lon %f min_z %d max_z %d radius %f all_types %d\n", + latitude, longitude, min_z, max_z, radius, all_types); this.map = map; this.listener = listener; + this.latitude = latitude; + this.longitude = longitude; + this.min_z = min_z; + this.max_z = max_z; + this.radius = radius; + this.all_types = all_types; + start(); } } diff --git a/altoslib/AltosMapStore.java b/altoslib/AltosMapStore.java index eebef310..aed365ca 100644 --- a/altoslib/AltosMapStore.java +++ b/altoslib/AltosMapStore.java @@ -35,6 +35,7 @@ public class AltosMapStore { public synchronized void add_listener(AltosMapStoreListener listener) { if (!listeners.contains(listener)) listeners.add(listener); + listener.notify_store(this, status); } public synchronized void remove_listener(AltosMapStoreListener listener) { @@ -110,7 +111,7 @@ public class AltosMapStore { file.delete(); return AltosMapTile.bad_request; } - return AltosMapTile.success; + return AltosMapTile.fetched; } static Object fetch_lock = new Object(); @@ -118,42 +119,42 @@ public class AltosMapStore { static final long forbidden_interval = 60l * 1000l * 1000l * 1000l; static final long google_maps_ratelimit_ms = 1200; - static Object loader_lock = new Object(); + static Object fetcher_lock = new Object(); static LinkedList<AltosMapStore> waiting = new LinkedList<AltosMapStore>(); static LinkedList<AltosMapStore> running = new LinkedList<AltosMapStore>(); - static final int concurrent_loaders = 128; + static final int concurrent_fetchers = 128; - static void start_loaders() { - while (!waiting.isEmpty() && running.size() < concurrent_loaders) { + static void start_fetchers() { + while (!waiting.isEmpty() && running.size() < concurrent_fetchers) { AltosMapStore s = waiting.remove(); running.add(s); - Thread lt = s.make_loader_thread(); + Thread lt = s.make_fetcher_thread(); lt.start(); } } - void finish_loader() { - synchronized(loader_lock) { + void finish_fetcher() { + synchronized(fetcher_lock) { running.remove(this); - start_loaders(); + start_fetchers(); } } - void add_loader() { - synchronized(loader_lock) { + void add_fetcher() { + synchronized(fetcher_lock) { waiting.add(this); - start_loaders(); + start_fetchers(); } } - class loader implements Runnable { + class fetcher implements Runnable { public void run() { try { if (file.exists()) { - notify_listeners(AltosMapTile.success); + notify_listeners(AltosMapTile.fetched); return; } @@ -170,7 +171,7 @@ public class AltosMapStore { synchronized (fetch_lock) { long startTime = System.nanoTime(); new_status = fetch_url(); - if (new_status == AltosMapTile.success) { + if (new_status == AltosMapTile.fetched) { long duration_ms = (System.nanoTime() - startTime) / 1000000; if (duration_ms < google_maps_ratelimit_ms) { try { @@ -186,17 +187,17 @@ public class AltosMapStore { } notify_listeners(new_status); } finally { - finish_loader(); + finish_fetcher(); } } } - private Thread make_loader_thread() { - return new Thread(new loader()); + private Thread make_fetcher_thread() { + return new Thread(new fetcher()); } - private void load() { - add_loader(); + private void fetch() { + add_fetcher(); } private AltosMapStore (String url, File file) { @@ -204,10 +205,10 @@ public class AltosMapStore { this.file = file; if (file.exists()) - status = AltosMapTile.success; + status = AltosMapTile.fetched; else { - status = AltosMapTile.loading; - load(); + status = AltosMapTile.fetching; + fetch(); } } diff --git a/altoslib/AltosMapTile.java b/altoslib/AltosMapTile.java index 076c5937..fdc8ff65 100644 --- a/altoslib/AltosMapTile.java +++ b/altoslib/AltosMapTile.java @@ -20,22 +20,23 @@ package org.altusmetrum.altoslib_10; import java.io.*; import java.util.*; -public abstract class AltosMapTile implements AltosFontListener { - AltosMapTileListener listener; +public abstract class AltosMapTile implements AltosFontListener, AltosMapStoreListener { + LinkedList<AltosMapTileListener> listeners = new LinkedList<AltosMapTileListener>(); public AltosLatLon upper_left, center; public int px_size; int zoom; int maptype; int scale; + private AltosMapCache cache; public AltosMapStore store; - public AltosMapCache cache; public int status; - static public final int success = 0; - static public final int loading = 1; - static public final int failed = 2; - static public final int bad_request = 3; - static public final int forbidden = 4; + static public final int loaded = 0; /* loaded from file */ + static public final int fetched = 1; /* downloaded to file */ + static public final int fetching = 2; /* downloading from net */ + static public final int failed = 3; /* loading from file failed */ + static public final int bad_request = 4;/* downloading failed */ + static public final int forbidden = 5; /* downloading failed */ private File map_file() { double lat = center.lat; @@ -79,33 +80,46 @@ public abstract class AltosMapTile implements AltosFontListener { public void font_size_changed(int font_size) { } - public void set_status(int status) { + private synchronized void notify_listeners(int status) { this.status = status; - listener.notify_tile(this, status); + for (AltosMapTileListener listener : listeners) + listener.notify_tile(this, status); } - public void notify_image(AltosImage image) { - listener.notify_tile(this, status); + public void notify_store(AltosMapStore store, int status) { +// System.out.printf("AltosMapTile.notify_store %d\n", status); + notify_listeners(status); } - public int store_status() { - return store.status(); + public void notify_image(AltosImage image) { + if (image == null) + status = failed; + else + status = loaded; + notify_listeners(status); } - public void add_store_listener(AltosMapStoreListener listener) { - store.add_listener(listener); + public abstract void paint(AltosMapTransform t); + + public AltosImage get_image() { + if (cache == null) + return null; + return cache.get(this); } - public void remove_store_listener(AltosMapStoreListener listener) { - store.remove_listener(listener); + public synchronized void add_listener(AltosMapTileListener listener) { + if (!listeners.contains(listener)) + listeners.add(listener); + listener.notify_tile(this, status); } - public abstract void paint(AltosMapTransform t); + public synchronized void remove_listener(AltosMapTileListener listener) { + listeners.remove(listener); + } - public AltosMapTile(AltosMapTileListener listener, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size, int scale) { - this.listener = listener; + public AltosMapTile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size, int scale) { + this.cache = cache; this.upper_left = upper_left; - this.cache = listener.cache(); while (center.lon < -180.0) center.lon += 360.0; @@ -118,11 +132,11 @@ public abstract class AltosMapTile implements AltosFontListener { this.px_size = px_size; this.scale = scale; - status = AltosMapTile.loading; store = AltosMapStore.get(map_url(), map_file()); + store.add_listener(this); } - public AltosMapTile(AltosMapTileListener listener, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { - this(listener, upper_left, center, zoom, maptype, px_size, 1); + public AltosMapTile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { + this(cache, upper_left, center, zoom, maptype, px_size, 1); } } diff --git a/altoslib/AltosMapTileListener.java b/altoslib/AltosMapTileListener.java index 6ab03638..6d78b205 100644 --- a/altoslib/AltosMapTileListener.java +++ b/altoslib/AltosMapTileListener.java @@ -19,6 +19,4 @@ package org.altusmetrum.altoslib_10; public interface AltosMapTileListener { abstract public void notify_tile(AltosMapTile tile, int status); - - abstract public AltosMapCache cache(); } diff --git a/altosuilib/AltosUIMapNew.java b/altosuilib/AltosUIMapNew.java index c867bf2e..a90e8c91 100644 --- a/altosuilib/AltosUIMapNew.java +++ b/altosuilib/AltosUIMapNew.java @@ -241,8 +241,8 @@ public class AltosUIMapNew extends JComponent implements AltosFlightDisplay, Alt } class MapTile extends AltosMapTile { - public MapTile(AltosMapTileListener listener, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { - super(listener, upper_left, center, zoom, maptype, px_size); + public MapTile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { + super(cache, upper_left, center, zoom, maptype, px_size); } public void paint(AltosMapTransform t) { @@ -254,11 +254,9 @@ public class AltosUIMapNew extends JComponent implements AltosFlightDisplay, Alt if (!g.hitClip(point.x, point.y, px_size, px_size)) return; - AltosImage altos_image = cache.get(this, store, px_size, px_size); - + AltosImage altos_image = get_image(); AltosUIImage ui_image = (AltosUIImage) altos_image; - - Image image = null; + Image image = null; if (ui_image != null) image = ui_image.image; @@ -272,8 +270,8 @@ public class AltosUIMapNew extends JComponent implements AltosFlightDisplay, Alt if (t.has_location()) { String message = null; switch (status) { - case AltosMapTile.loading: - message = "Loading..."; + case AltosMapTile.fetching: + message = "Fetching..."; break; case AltosMapTile.bad_request: message = "Internal error"; @@ -334,8 +332,8 @@ public class AltosUIMapNew extends JComponent implements AltosFlightDisplay, Alt return new MapMark(lat, lon, state); } - public AltosMapTile new_tile(AltosMapTileListener listener, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { - return new MapTile(listener, upper_left, center, zoom, maptype, px_size); + public AltosMapTile new_tile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size) { + return new MapTile(cache, upper_left, center, zoom, maptype, px_size); } public int width() { diff --git a/altosuilib/AltosUIMapPreloadNew.java b/altosuilib/AltosUIMapPreloadNew.java index b5f4dbf8..3269bbdd 100644 --- a/altosuilib/AltosUIMapPreloadNew.java +++ b/altosuilib/AltosUIMapPreloadNew.java @@ -127,8 +127,6 @@ public class AltosUIMapPreloadNew extends AltosUIFrame implements ActionListener JProgressBar pbar; - AltosMapLoader loader; - JLabel site_list_label; JComboBox<AltosLaunchSite> site_list; @@ -238,7 +236,10 @@ public class AltosUIMapPreloadNew extends AltosUIFrame implements ActionListener r = r * 1000; loading = true; - loader.load(latitude, longitude, min_z, max_z, r, all_types()); + new AltosMapLoader(map.map, this, + latitude, longitude, + min_z, max_z, r, all_types()); + } catch (ParseException pe) { load_button.setSelected(false); } @@ -271,8 +272,6 @@ public class AltosUIMapPreloadNew extends AltosUIFrame implements ActionListener map = new AltosUIMapNew(); - loader = new AltosMapLoader(map.map, this); - c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; c.insets = i; |