Mercurial > dive4elements > river
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 :