changeset 1448:c39aa5a6478c

#409 Made layer list and map layers synchron. flys-client/trunk@3465 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 19 Dec 2011 14:58:24 +0000
parents c4bc320e3d44
children 8da36efc839a
files flys-client/ChangeLog flys-client/src/main/java/de/intevation/flys/client/client/ui/map/FloodMap.java flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapThemePanel.java
diffstat 4 files changed, 32 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/flys-client/ChangeLog	Mon Dec 19 10:13:12 2011 +0000
+++ b/flys-client/ChangeLog	Mon Dec 19 14:58:24 2011 +0000
@@ -1,3 +1,20 @@
+2011-12-19  Ingo Weinzierl <ingo@intevation.de>
+
+	flys/issue409 (Überschwemmungsfläche: Reihenfolge in Themenliste nicht immer synchron mit Rendering)
+
+	* src/main/java/de/intevation/flys/client/client/ui/map/FloodMap.java: Added
+	  a addLayer() method which should be used to add new layers to the map. New
+	  layers are always displayed at the bottom of the layer stack.
+
+	* src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java:
+	  Use FloodMap.addLayer() to add new layers instead of adding them directly
+	  to the Map.
+
+	* src/main/java/de/intevation/flys/client/client/ui/map/MapThemePanel.java:
+	  Removed the re-order process of map layers. This is no longer necessary,
+	  because MapOutputTab uses FloodMap.addLayer() to add new layers instead of
+	  adding new layers on its own using Map.addLayer() directly.
+
 2011-12-19  Ingo Weinzierl <ingo@intevation.de>
 
 	* src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties,
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/FloodMap.java	Mon Dec 19 10:13:12 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/FloodMap.java	Mon Dec 19 14:58:24 2011 +0000
@@ -197,6 +197,20 @@
     }
 
 
+    public void addLayer(Layer layer) {
+        if (layer != null) {
+            map.addLayer(layer);
+
+            int index    = map.getLayerIndex(layer);
+            int newIndex = index * (-1) + 1;
+
+            map.raiseLayer(layer, newIndex);
+
+            update();
+        }
+    }
+
+
     public void hideBarrierLayer () {
         if (barrierLayer != null) {
             barrierLayer.setIsVisible(false);
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java	Mon Dec 19 10:13:12 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java	Mon Dec 19 14:58:24 2011 +0000
@@ -217,7 +217,7 @@
 
 
     public void addLayer(Layer layer) {
-        Map map = getMap();
+        FloodMap map = getFloodmap();
 
         if (map != null) {
             GWT.log("Add new layer '" + layer.getName() + "' to map.");
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapThemePanel.java	Mon Dec 19 10:13:12 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapThemePanel.java	Mon Dec 19 14:58:24 2011 +0000
@@ -19,9 +19,6 @@
 import com.smartgwt.client.widgets.menu.events.ClickHandler;
 import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent;
 
-import org.gwtopenmaps.openlayers.client.Map;
-import org.gwtopenmaps.openlayers.client.layer.Layer;
-
 import de.intevation.flys.client.shared.MapUtils;
 import de.intevation.flys.client.shared.model.AttributedTheme;
 import de.intevation.flys.client.shared.model.Collection;
@@ -200,26 +197,6 @@
     }
 
 
-    /**
-     * This method calls super.updateGrid() at first. Finally, it is used to
-     * reorder the layers in the map. The first layer added to the map is the
-     * layer which is least visible. So, the order needs to be reflected.
-     */
-    @Override
-    protected void updateGrid() {
-        super.updateGrid();
-
-        Map map = mapOut.getMap();
-        int num = map.getNumLayers() - 1; // without the vector layer
-
-        Layer[] layers = map.getLayers();
-
-        for (int i = 1; i < num; i++) {
-            map.raiseLayer(layers[i], num-i);
-        }
-    }
-
-
     @Override
     protected void addFacetRecord(FacetRecord rec) {
         Theme newTheme = rec.getTheme();

http://dive4elements.wald.intevation.org