diff flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java @ 802:d45ad7fd3027

Added map tools to measure lines and polygons. flys-client/trunk@2323 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 12 Jul 2011 15:04:50 +0000
parents 95cc560ce7c4
children 1b9b7e9ab219
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java	Tue Jul 12 13:44:27 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java	Tue Jul 12 15:04:50 2011 +0000
@@ -43,7 +43,8 @@
     protected ImgButton selectButton;
     protected ImgButton removeButton;
 
-    protected DrawControl drawControl;
+    protected DrawControl    drawControl;
+    protected MeasureControl measureControl;
 
     protected Canvas position;
 
@@ -70,6 +71,7 @@
         drawControl     = createDrawControl();
         selectButton    = createSelectFeatureControl();
         removeButton    = createRemoveFeatureControl();
+        measureControl  = createMeasureControl();
 
         addMember(zoomToMaxButton);
         addMember(zoomBoxButton);
@@ -78,6 +80,7 @@
         addMember(drawControl);
         addMember(selectButton);
         addMember(removeButton);
+        addMember(measureControl);
         addMember(spacer);
         addMember(position);
     }
@@ -129,6 +132,11 @@
     }
 
 
+    protected void activateMeasureControl(boolean activate) {
+        measureControl.activate(activate);
+    }
+
+
     protected ImgButton createButton(String img, ClickHandler handler) {
         ImgButton btn = new ImgButton();
 
@@ -198,6 +206,7 @@
                 activatePan(false);
                 activateDrawFeature(false);
                 activateSelectFeature(false);
+                activateMeasureControl(false);
             }
 
             public void disable() {
@@ -239,6 +248,7 @@
                 activatePan(true);
                 activateDrawFeature(false);
                 activateSelectFeature(false);
+                activateMeasureControl(false);
             }
 
             public void disable() {
@@ -259,6 +269,7 @@
                 activatePan(false);
                 activateDrawFeature(true);
                 activateSelectFeature(false);
+                activateMeasureControl(false);
             }
 
             public void disable() {
@@ -302,6 +313,7 @@
                 activatePan(false);
                 activateZoomBox(false);
                 activateSelectFeature(true);
+                activateMeasureControl(false);
             }
 
             public void disable() {
@@ -346,5 +358,23 @@
     protected Canvas createMousePosition(Canvas mapWrapper) {
         return new MapPositionPanel(floodMap.getMapWidget(), mapWrapper);
     }
+
+
+    protected MeasureControl createMeasureControl() {
+        EnableDisableCmd cmd = new EnableDisableCmd() {
+            public void enable() {
+                activateDrawFeature(false);
+                activatePan(false);
+                activateZoomBox(false);
+                activateSelectFeature(false);
+            }
+
+            public void disable() {
+                // do nothing
+            }
+        };
+
+        return new MeasureControl(floodMap, cmd);
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org