Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MeasureControl.java @ 1297:887eb0cd7dfc
Bugfix: #375 Limit the number of fractions in the result of the measure controls (in the map).
flys-client/trunk@2918 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 10 Oct 2011 09:31:08 +0000 |
parents | 22dc88b17253 |
children | 6890e1041eac |
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; |
1297
887eb0cd7dfc
Bugfix: #375 Limit the number of fractions in the result of the measure controls (in the map).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
880
diff
changeset
|
4 import com.google.gwt.i18n.client.NumberFormat; |
802
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import com.smartgwt.client.types.SelectionType; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 import com.smartgwt.client.widgets.ImgButton; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 import com.smartgwt.client.widgets.Label; |
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.ClickEvent; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 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
|
11 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
|
12 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 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
|
14 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
|
15 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
|
16 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
|
17 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
|
18 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
|
19 |
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.FLYSConstants; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 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
|
22 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 public class MeasureControl extends HLayout { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
1297
887eb0cd7dfc
Bugfix: #375 Limit the number of fractions in the result of the measure controls (in the map).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
880
diff
changeset
|
26 public static final String NUMBER_FORMAT_PATTERN = "#.##"; |
887eb0cd7dfc
Bugfix: #375 Limit the number of fractions in the result of the measure controls (in the map).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
880
diff
changeset
|
27 |
802
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 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
|
29 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 protected FloodMap floodMap; |
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 Measure measureLine; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 protected Measure measurePolygon; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 protected ImgButton measureLineButton; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 protected ImgButton measurePolyButton; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 protected Label label; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 |
1297
887eb0cd7dfc
Bugfix: #375 Limit the number of fractions in the result of the measure controls (in the map).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
880
diff
changeset
|
39 protected NumberFormat formatter; |
887eb0cd7dfc
Bugfix: #375 Limit the number of fractions in the result of the measure controls (in the map).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
880
diff
changeset
|
40 |
802
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 public MeasureControl(FloodMap floodMap, EnableDisableCmd cmd) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 this.floodMap = floodMap; |
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 measureLineButton = createMeasureLineControl(cmd); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 measurePolyButton = createMeasurePolyControl(cmd); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 |
1297
887eb0cd7dfc
Bugfix: #375 Limit the number of fractions in the result of the measure controls (in the map).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
880
diff
changeset
|
48 formatter = NumberFormat.getFormat(NUMBER_FORMAT_PATTERN); |
887eb0cd7dfc
Bugfix: #375 Limit the number of fractions in the result of the measure controls (in the map).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
880
diff
changeset
|
49 |
802
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 label = new Label(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 initLayout(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 } |
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 protected void initLayout() { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 setMembersMargin(2); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 addMember(measureLineButton); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 addMember(measurePolyButton); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 addMember(label); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 |
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 protected ImgButton createMeasureLineControl(final EnableDisableCmd cmd) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 measureLine = new Measure(new PathHandler()); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 measureLine.setPersist(true); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 measureLine.addMeasureListener(new MeasureListener() { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 public void onMeasure(MeasureEvent e) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 updateMeasure(e.getMeasure(), e.getUnits()); |
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 }); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 measureLine.addMeasurePartialListener(new MeasurePartialListener() { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 public void onMeasurePartial(MeasureEvent e) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 updateMeasure(e.getMeasure(), e.getUnits()); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 }); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 floodMap.getMap().addControl(measureLine); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 final ImgButton btn = new ImgButton(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 String baseUrl = GWT.getHostPageBaseURL(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 btn.setSrc(baseUrl + MSG.measureLine()); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 btn.setActionType(SelectionType.CHECKBOX); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 btn.setSize(20); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 btn.setShowRollOver(false); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 btn.setSelected(false); |
880
22dc88b17253
Added tooltips for the maptoolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
802
diff
changeset
|
87 btn.setTooltip(MSG.measureDistance()); |
802
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 btn.addClickHandler(new ClickHandler() { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 public void onClick(ClickEvent e) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 if (btn.isSelected()) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 cmd.enable(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 activateMeasurePolygon(false); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 activateMeasureLine(true); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 else { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
96 cmd.disable(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
97 activateMeasureLine(false); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
100 }); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
101 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
102 return btn; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
103 } |
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 protected ImgButton createMeasurePolyControl(final EnableDisableCmd cmd) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
107 measurePolygon = new Measure(new PolygonHandler()); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
108 measurePolygon.setPersist(true); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 measurePolygon.addMeasureListener(new MeasureListener() { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 public void onMeasure(MeasureEvent e) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
111 updateMeasure(e.getMeasure(), e.getUnits()); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
112 } |
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 measurePolygon.addMeasurePartialListener(new MeasurePartialListener() { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
115 public void onMeasurePartial(MeasureEvent e) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
116 updateMeasure(e.getMeasure(), e.getUnits()); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
118 }); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
119 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
120 floodMap.getMap().addControl(measurePolygon); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
121 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 final ImgButton btn = new ImgButton(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
123 String baseUrl = GWT.getHostPageBaseURL(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
124 btn.setSrc(baseUrl + MSG.measurePolygon()); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
125 btn.setActionType(SelectionType.CHECKBOX); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 btn.setSize(20); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
127 btn.setShowRollOver(false); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
128 btn.setSelected(false); |
880
22dc88b17253
Added tooltips for the maptoolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
802
diff
changeset
|
129 btn.setTooltip(MSG.measureArea()); |
802
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 btn.addClickHandler(new ClickHandler() { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
131 public void onClick(ClickEvent e) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
132 if (btn.isSelected()) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
133 cmd.enable(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
134 activateMeasureLine(false); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
135 activateMeasurePolygon(true); |
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 else { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
138 cmd.disable(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
139 activateMeasurePolygon(false); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
140 } |
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 return btn; |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
145 } |
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 protected void clearMeasure() { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
149 label.setContents(""); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
150 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
151 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
152 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
153 protected void updateMeasure(float value, String unit) { |
1297
887eb0cd7dfc
Bugfix: #375 Limit the number of fractions in the result of the measure controls (in the map).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
880
diff
changeset
|
154 label.setContents(formatter.format(value) + " " + unit); |
802
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 public void activate(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 activateMeasureLine(activate); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
162 activateMeasurePolygon(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 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
165 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
166 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
167 protected void activateMeasureLine(boolean activate) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
168 if (activate) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
169 clearMeasure(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
170 measureLineButton.select(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
171 measureLine.activate(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
172 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
173 else { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
174 measureLineButton.deselect(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
175 measureLine.deactivate(); |
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 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
178 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
179 |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
180 protected void activateMeasurePolygon(boolean activate) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
181 if (activate) { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
182 clearMeasure(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
183 measurePolyButton.select(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
184 measurePolygon.activate(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
185 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
186 else { |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
187 measurePolyButton.deselect(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
188 measurePolygon.deactivate(); |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
189 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
190 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
191 } |
d45ad7fd3027
Added map tools to measure lines and polygons.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
192 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |