altoslib: Get rid of AltosMap from AltosMapLoader
[fw/altos] / altoslib / AltosMap.java
index 26851e961453e985169e990939e5b92da4137646..08ac5f3c9bc6c859491c9447964af115196f4bbc 100644 (file)
@@ -51,6 +51,7 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener {
        };
 
        AltosMapInterface       map_interface;
+       int                     scale;
 
        AltosMapCache           cache;
 
@@ -328,7 +329,9 @@ 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, scale);
+                                       debug("show state %s url %s\n", AltosMapTile.status_name(tile.store.status()), tile.store.url);
+                                       tile.add_listener(this);
                                        tiles.put(point, tile);
                                }
                        }
@@ -345,11 +348,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();
        }
 
@@ -479,11 +477,16 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener {
                        drag_stop(x, y);
        }
 
-       public AltosMap(AltosMapInterface map_interface) {
+       public AltosMap(AltosMapInterface map_interface, int scale) {
                this.map_interface = map_interface;
+               this.scale = scale;
                cache = new AltosMapCache(map_interface);
                line = map_interface.new_line();
                path = map_interface.new_path();
                set_zoom_label();
        }
+
+       public AltosMap(AltosMapInterface map_interface) {
+               this(map_interface, 1);
+       }
 }