Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java @ 799:f4299b90c996
Added controls to navigate in the map.
flys-client/trunk@2318 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 11 Jul 2011 13:29:57 +0000 |
parents | |
children | 95cc560ce7c4 |
line wrap: on
line source
package de.intevation.flys.client.client.ui.map; import com.google.gwt.core.client.GWT; import com.smartgwt.client.types.SelectionType; import com.smartgwt.client.widgets.ImgButton; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.layout.HLayout; import org.gwtopenmaps.openlayers.client.Map; import org.gwtopenmaps.openlayers.client.control.DragPan; import org.gwtopenmaps.openlayers.client.control.ZoomBox; import de.intevation.flys.client.client.FLYSConstants; /** * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class MapToolbar extends HLayout { /** The message class that provides i18n strings.*/ protected FLYSConstants MSG = GWT.create(FLYSConstants.class); protected FloodMap floodMap; protected DragPan pan; protected ZoomBox zoomBox; protected ImgButton zoomToMaxButton; protected ImgButton zoomBoxButton; protected ImgButton zoomOutButton; protected ImgButton panButton; public MapToolbar(FloodMap floodMap) { super(); setWidth100(); setHeight(30); setMembersMargin(10); setPadding(5); setBorder("1px solid black"); this.floodMap = floodMap; zoomToMaxButton = createMaxExtentControl(); zoomBoxButton = createZoomBoxControl(); zoomOutButton = createZoomOutControl(); panButton = createPanControl(); addMember(zoomToMaxButton); addMember(zoomBoxButton); addMember(zoomOutButton); addMember(panButton); } protected Map getMap() { return floodMap.getMap(); } protected void activatePan(boolean activate) { if (activate) { panButton.select(); pan.activate(); } else { panButton.deselect(); pan.deactivate(); } } protected void activateZoomBox(boolean activate) { if (activate) { zoomBoxButton.select(); zoomBox.activate(); } else { zoomBoxButton.deselect(); zoomBox.deactivate(); } } protected ImgButton createMaxExtentControl() { ImgButton zoomToMax = new ImgButton(); String baseUrl = GWT.getHostPageBaseURL(); zoomToMax.setSrc(baseUrl + MSG.zoom_all()); zoomToMax.setWidth(20); zoomToMax.setHeight(20); zoomToMax.setShowDown(false); zoomToMax.setShowRollOver(false); zoomToMax.setShowDisabled(false); zoomToMax.setShowDisabledIcon(true); zoomToMax.setShowDownIcon(false); zoomToMax.setShowFocusedIcon(false); zoomToMax.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { floodMap.getMap().zoomToMaxExtent(); } }); return zoomToMax; } protected ImgButton createZoomBoxControl() { zoomBox = new ZoomBox(); final ImgButton button = new ImgButton(); String baseUrl = GWT.getHostPageBaseURL(); button.setSrc(baseUrl + MSG.zoom_in()); button.setActionType(SelectionType.CHECKBOX); button.setSize(20); button.setShowRollOver(false); button.setSelected(false); button.addClickHandler(new ClickHandler() { public void onClick(ClickEvent e) { if (button.isSelected()) { activatePan(false); activateZoomBox(true); } else { activateZoomBox(false); } } }); Map map = getMap(); map.addControl(zoomBox); return button; } protected ImgButton createZoomOutControl() { ImgButton zoomOut = new ImgButton(); String baseUrl = GWT.getHostPageBaseURL(); zoomOut.setSrc(baseUrl + MSG.zoom_out()); zoomOut.setWidth(20); zoomOut.setHeight(20); zoomOut.setShowDown(false); zoomOut.setShowRollOver(false); zoomOut.setShowDisabled(false); zoomOut.setShowDisabledIcon(true); zoomOut.setShowDownIcon(false); zoomOut.setShowFocusedIcon(false); zoomOut.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { Map map = floodMap.getMap(); int level = map.getZoom(); if (level > 1) { map.zoomTo(level-1); } } }); return zoomOut; } protected ImgButton createPanControl() { pan = new DragPan(); final ImgButton button = new ImgButton(); String baseUrl = GWT.getHostPageBaseURL(); button.setSrc(baseUrl + MSG.pan()); button.setActionType(SelectionType.CHECKBOX); button.setSize(20); button.setShowRollOver(false); button.setSelected(false); button.addClickHandler(new ClickHandler() { public void onClick(ClickEvent e) { if (button.isSelected()) { activateZoomBox(false); activatePan(true); } else { activatePan(false); } } }); Map map = getMap(); map.addControl(pan); return button; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :