Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MeasureControl.java @ 912:2c8f1112be37
Rollback for input assistance of "Q/D" table.
The selectable icon columns are visible in all modes except of
"Q" input mode.
(Issue203)
flys-client/trunk@2771 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 16 Sep 2011 09:35:42 +0000 |
parents | 22dc88b17253 |
children | 887eb0cd7dfc |
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.Label; 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.control.Measure; import org.gwtopenmaps.openlayers.client.event.MeasureEvent; import org.gwtopenmaps.openlayers.client.event.MeasureListener; import org.gwtopenmaps.openlayers.client.event.MeasurePartialListener; import org.gwtopenmaps.openlayers.client.handler.PathHandler; import org.gwtopenmaps.openlayers.client.handler.PolygonHandler; import de.intevation.flys.client.client.FLYSConstants; import de.intevation.flys.client.client.utils.EnableDisableCmd; public class MeasureControl extends HLayout { protected FLYSConstants MSG = GWT.create(FLYSConstants.class); protected FloodMap floodMap; protected Measure measureLine; protected Measure measurePolygon; protected ImgButton measureLineButton; protected ImgButton measurePolyButton; protected Label label; public MeasureControl(FloodMap floodMap, EnableDisableCmd cmd) { this.floodMap = floodMap; measureLineButton = createMeasureLineControl(cmd); measurePolyButton = createMeasurePolyControl(cmd); label = new Label(); initLayout(); } protected void initLayout() { setMembersMargin(2); addMember(measureLineButton); addMember(measurePolyButton); addMember(label); } protected ImgButton createMeasureLineControl(final EnableDisableCmd cmd) { measureLine = new Measure(new PathHandler()); measureLine.setPersist(true); measureLine.addMeasureListener(new MeasureListener() { public void onMeasure(MeasureEvent e) { updateMeasure(e.getMeasure(), e.getUnits()); } }); measureLine.addMeasurePartialListener(new MeasurePartialListener() { public void onMeasurePartial(MeasureEvent e) { updateMeasure(e.getMeasure(), e.getUnits()); } }); floodMap.getMap().addControl(measureLine); final ImgButton btn = new ImgButton(); String baseUrl = GWT.getHostPageBaseURL(); btn.setSrc(baseUrl + MSG.measureLine()); btn.setActionType(SelectionType.CHECKBOX); btn.setSize(20); btn.setShowRollOver(false); btn.setSelected(false); btn.setTooltip(MSG.measureDistance()); btn.addClickHandler(new ClickHandler() { public void onClick(ClickEvent e) { if (btn.isSelected()) { cmd.enable(); activateMeasurePolygon(false); activateMeasureLine(true); } else { cmd.disable(); activateMeasureLine(false); } } }); return btn; } protected ImgButton createMeasurePolyControl(final EnableDisableCmd cmd) { measurePolygon = new Measure(new PolygonHandler()); measurePolygon.setPersist(true); measurePolygon.addMeasureListener(new MeasureListener() { public void onMeasure(MeasureEvent e) { updateMeasure(e.getMeasure(), e.getUnits()); } }); measurePolygon.addMeasurePartialListener(new MeasurePartialListener() { public void onMeasurePartial(MeasureEvent e) { updateMeasure(e.getMeasure(), e.getUnits()); } }); floodMap.getMap().addControl(measurePolygon); final ImgButton btn = new ImgButton(); String baseUrl = GWT.getHostPageBaseURL(); btn.setSrc(baseUrl + MSG.measurePolygon()); btn.setActionType(SelectionType.CHECKBOX); btn.setSize(20); btn.setShowRollOver(false); btn.setSelected(false); btn.setTooltip(MSG.measureArea()); btn.addClickHandler(new ClickHandler() { public void onClick(ClickEvent e) { if (btn.isSelected()) { cmd.enable(); activateMeasureLine(false); activateMeasurePolygon(true); } else { cmd.disable(); activateMeasurePolygon(false); } } }); return btn; } protected void clearMeasure() { label.setContents(""); } protected void updateMeasure(float value, String unit) { label.setContents(String.valueOf(value) + " " + unit); } public void activate(boolean activate) { if (!activate) { clearMeasure(); activateMeasureLine(activate); activateMeasurePolygon(activate); } } protected void activateMeasureLine(boolean activate) { if (activate) { clearMeasure(); measureLineButton.select(); measureLine.activate(); } else { measureLineButton.deselect(); measureLine.deactivate(); } } protected void activateMeasurePolygon(boolean activate) { if (activate) { clearMeasure(); measurePolyButton.select(); measurePolygon.activate(); } else { measurePolyButton.deselect(); measurePolygon.deactivate(); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :