annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MeasureControl.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
children 22dc88b17253
rev   line source
802
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.map;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import com.google.gwt.core.client.GWT;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import com.smartgwt.client.types.SelectionType;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import com.smartgwt.client.widgets.ImgButton;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import com.smartgwt.client.widgets.Label;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import com.smartgwt.client.widgets.events.ClickEvent;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import com.smartgwt.client.widgets.events.ClickHandler;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.layout.HLayout;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import org.gwtopenmaps.openlayers.client.control.Measure;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import org.gwtopenmaps.openlayers.client.event.MeasureEvent;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import org.gwtopenmaps.openlayers.client.event.MeasureListener;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import org.gwtopenmaps.openlayers.client.event.MeasurePartialListener;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import org.gwtopenmaps.openlayers.client.handler.PathHandler;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import org.gwtopenmaps.openlayers.client.handler.PolygonHandler;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.client.client.FLYSConstants;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.client.client.utils.EnableDisableCmd;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 public class MeasureControl extends HLayout {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 protected FloodMap floodMap;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 protected Measure measureLine;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 protected Measure measurePolygon;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 protected ImgButton measureLineButton;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 protected ImgButton measurePolyButton;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 protected Label label;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public MeasureControl(FloodMap floodMap, EnableDisableCmd cmd) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 this.floodMap = floodMap;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 measureLineButton = createMeasureLineControl(cmd);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 measurePolyButton = createMeasurePolyControl(cmd);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 label = new Label();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 initLayout();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 protected void initLayout() {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 setMembersMargin(2);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 addMember(measureLineButton);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 addMember(measurePolyButton);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 addMember(label);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 protected ImgButton createMeasureLineControl(final EnableDisableCmd cmd) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 measureLine = new Measure(new PathHandler());
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 measureLine.setPersist(true);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 measureLine.addMeasureListener(new MeasureListener() {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 public void onMeasure(MeasureEvent e) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 updateMeasure(e.getMeasure(), e.getUnits());
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 });
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 measureLine.addMeasurePartialListener(new MeasurePartialListener() {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 public void onMeasurePartial(MeasureEvent e) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 updateMeasure(e.getMeasure(), e.getUnits());
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 });
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 floodMap.getMap().addControl(measureLine);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 final ImgButton btn = new ImgButton();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 String baseUrl = GWT.getHostPageBaseURL();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 btn.setSrc(baseUrl + MSG.measureLine());
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 btn.setActionType(SelectionType.CHECKBOX);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 btn.setSize(20);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 btn.setShowRollOver(false);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 btn.setSelected(false);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 btn.addClickHandler(new ClickHandler() {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 public void onClick(ClickEvent e) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 if (btn.isSelected()) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 cmd.enable();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 activateMeasurePolygon(false);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 activateMeasureLine(true);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 else {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 cmd.disable();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 activateMeasureLine(false);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 });
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 return btn;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 protected ImgButton createMeasurePolyControl(final EnableDisableCmd cmd) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 measurePolygon = new Measure(new PolygonHandler());
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 measurePolygon.setPersist(true);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 measurePolygon.addMeasureListener(new MeasureListener() {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 public void onMeasure(MeasureEvent e) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 updateMeasure(e.getMeasure(), e.getUnits());
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 });
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 measurePolygon.addMeasurePartialListener(new MeasurePartialListener() {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 public void onMeasurePartial(MeasureEvent e) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 updateMeasure(e.getMeasure(), e.getUnits());
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 });
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 floodMap.getMap().addControl(measurePolygon);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 final ImgButton btn = new ImgButton();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 String baseUrl = GWT.getHostPageBaseURL();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 btn.setSrc(baseUrl + MSG.measurePolygon());
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 btn.setActionType(SelectionType.CHECKBOX);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 btn.setSize(20);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 btn.setShowRollOver(false);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 btn.setSelected(false);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 btn.addClickHandler(new ClickHandler() {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 public void onClick(ClickEvent e) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 if (btn.isSelected()) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 cmd.enable();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 activateMeasureLine(false);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 activateMeasurePolygon(true);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 else {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 cmd.disable();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 activateMeasurePolygon(false);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 });
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 return btn;
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 protected void clearMeasure() {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 label.setContents("");
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 protected void updateMeasure(float value, String unit) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 label.setContents(String.valueOf(value) + " " + unit);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 public void activate(boolean activate) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 if (!activate) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 clearMeasure();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 activateMeasureLine(activate);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 activateMeasurePolygon(activate);
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 protected void activateMeasureLine(boolean activate) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159 if (activate) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160 clearMeasure();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 measureLineButton.select();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 measureLine.activate();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 else {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 measureLineButton.deselect();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166 measureLine.deactivate();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
169
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171 protected void activateMeasurePolygon(boolean activate) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172 if (activate) {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
173 clearMeasure();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 measurePolyButton.select();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 measurePolygon.activate();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177 else {
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178 measurePolyButton.deselect();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179 measurePolygon.deactivate();
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182 }
d45ad7fd3027 Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org