diff flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java @ 1400:96708d81eaf6

Added an initial GetFeatureInfo tool to get information about points in the map. flys-client/trunk@3285 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 17 Nov 2011 16:20:55 +0000
parents d29a9fa10313
children 09566522e899
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java	Thu Nov 17 14:10:51 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java	Thu Nov 17 16:20:55 2011 +0000
@@ -20,8 +20,10 @@
 import org.gwtopenmaps.openlayers.client.util.Attributes;
 
 import de.intevation.flys.client.client.FLYSConstants;
+import de.intevation.flys.client.client.ui.OutputTab;
 import de.intevation.flys.client.client.ui.Toolbar;
 import de.intevation.flys.client.client.utils.EnableDisableCmd;
+import de.intevation.flys.client.shared.model.ThemeList;
 
 
 /**
@@ -31,10 +33,11 @@
 
     protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
 
-    protected FloodMap      floodMap;
-    protected DragPan       pan;
-    protected ZoomBox       zoomBox;
-    protected SelectFeature selectFeature;
+    protected FloodMap       floodMap;
+    protected DragPan        pan;
+    protected ZoomBox        zoomBox;
+    protected SelectFeature  selectFeature;
+    protected GetFeatureInfo getFeatureInfo;
 
     protected Button datacageButton;
 
@@ -43,6 +46,7 @@
     protected ImgButton zoomOutButton;
     protected ImgButton panButton;
     protected ImgButton selectButton;
+    protected ImgButton infoButton;
     protected ImgButton removeButton;
     protected ImgButton elevationButton;
 
@@ -83,6 +87,7 @@
         panButton       = createPanControl();
         drawControl     = createDrawControl();
         selectButton    = createSelectFeatureControl();
+        infoButton      = createGetFeatureInfo();
         measureControl  = createMeasureControl();
         position        = createMousePosition();
         removeButton    = createRemoveFeatureControl();
@@ -105,6 +110,10 @@
             addMember(elevationButton);
         }
 
+        if (infoButton != null) {
+            addMember(infoButton);
+        }
+
         addMember(measureControl);
         addMember(position);
     }
@@ -161,6 +170,11 @@
     }
 
 
+    protected void activateGetFeatureInfo(boolean activate) {
+        getFeatureInfo.activate(activate);
+    }
+
+
     protected ImgButton createButton(String img, ClickHandler handler) {
         ImgButton btn = new ImgButton();
 
@@ -468,5 +482,39 @@
 
         return btn;
     }
+
+
+    protected ImgButton createGetFeatureInfo() {
+        OutputTab ot = getOutputTab();
+        if (ot == null) {
+            return null;
+        }
+
+        ThemeList tl = ot.getCollection().getThemeList("floodmap");
+
+        getFeatureInfo = new GetFeatureInfo(
+            getMap(),
+            tl.getThemes(),
+            "gml");
+
+        EnableDisableCmd cmd = new EnableDisableCmd() {
+            public void enable() {
+                activateDrawFeature(false);
+                activatePan(false);
+                activateZoomBox(false);
+                activateSelectFeature(false);
+                activateGetFeatureInfo(true);
+            }
+
+            public void disable() {
+                activateGetFeatureInfo(false);
+            }
+        };
+
+        ImgButton button = createToggleButton(MSG.getFeatureInfo(), cmd);
+        button.setTooltip(MSG.getFeatureInfoTooltip());
+
+        return button;
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org