Mercurial > dive4elements > river
diff flys-client/src/main/java/org/dive4elements/river/client/client/ui/map/MapPositionPanel.java @ 5834:f507086aa94b
Repaired internal references.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:31:32 +0200 |
parents | flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPositionPanel.java@c1292aab6aa9 |
children | 821a02bbfb4e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/org/dive4elements/river/client/client/ui/map/MapPositionPanel.java Thu Apr 25 12:31:32 2013 +0200 @@ -0,0 +1,77 @@ +package de.intevation.flys.client.client.ui.map; + +import com.google.gwt.i18n.client.NumberFormat; + +import com.smartgwt.client.types.Alignment; +import com.smartgwt.client.widgets.Label; +import com.smartgwt.client.widgets.layout.HLayout; + +import org.gwtopenmaps.openlayers.client.LonLat; +import org.gwtopenmaps.openlayers.client.Map; +import org.gwtopenmaps.openlayers.client.MapWidget; +import org.gwtopenmaps.openlayers.client.Pixel; +import org.gwtopenmaps.openlayers.client.event.EventHandler; +import org.gwtopenmaps.openlayers.client.event.EventObject; +import org.gwtopenmaps.openlayers.client.util.JSObject; + +/** + * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> + */ +public class MapPositionPanel extends HLayout { + + protected MapWidget mapWidget; + protected final Map map; + + protected Label x; + protected Label y; + + + public MapPositionPanel(MapWidget mapWidget) { + this.mapWidget = mapWidget; + this.map = mapWidget.getMap(); + + this.x = new Label(); + this.y = new Label(); + Label d = new Label("|"); + + setAlign(Alignment.RIGHT); + setMembersMargin(2); + + setWidth(150); + x.setWidth(25); + y.setWidth(25); + d.setWidth(5); + + addMember(x); + addMember(d); + addMember(y); + + // TODO This is not an optimal way to get the mouse position but makes + // the wrapper canvas superfluous. + this.map.getEvents().register("mousemove", map, new EventHandler() { + + @Override + public void onHandle(EventObject eventObject) { + JSObject xy = eventObject.getJSObject().getProperty("xy"); + Pixel px = Pixel.narrowToPixel(xy); + LonLat lonlat = map.getLonLatFromPixel(px); + + setX(lonlat.lon()); + setY(lonlat.lat()); + } + }); + } + + + protected void setX(double x) { + NumberFormat f = NumberFormat.getFormat("#0.0000"); + this.x.setContents(f.format(x).toString()); + } + + + protected void setY(double y) { + NumberFormat f = NumberFormat.getFormat("#0.0000"); + this.y.setContents(f.format(y).toString()); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :