Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MeasureControl.java @ 1300:6890e1041eac
Bugfix: #289 Display measured areas in 'ha'.
flys-client/trunk@2924 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 10 Oct 2011 11:07:06 +0000 |
parents | 887eb0cd7dfc |
children | d73f503f2465 |
comparison
equal
deleted
inserted
replaced
1299:f4f30d758550 | 1300:6890e1041eac |
---|---|
22 | 22 |
23 | 23 |
24 public class MeasureControl extends HLayout { | 24 public class MeasureControl extends HLayout { |
25 | 25 |
26 public static final String NUMBER_FORMAT_PATTERN = "#.##"; | 26 public static final String NUMBER_FORMAT_PATTERN = "#.##"; |
27 | |
28 public static final String AREA_UNIT = "ha"; | |
29 public static final int AREA_FACTOR_M = 10000; | |
30 public static final int AREA_FACTOR_KM = 100; | |
27 | 31 |
28 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); | 32 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); |
29 | 33 |
30 protected FloodMap floodMap; | 34 protected FloodMap floodMap; |
31 | 35 |
106 protected ImgButton createMeasurePolyControl(final EnableDisableCmd cmd) { | 110 protected ImgButton createMeasurePolyControl(final EnableDisableCmd cmd) { |
107 measurePolygon = new Measure(new PolygonHandler()); | 111 measurePolygon = new Measure(new PolygonHandler()); |
108 measurePolygon.setPersist(true); | 112 measurePolygon.setPersist(true); |
109 measurePolygon.addMeasureListener(new MeasureListener() { | 113 measurePolygon.addMeasureListener(new MeasureListener() { |
110 public void onMeasure(MeasureEvent e) { | 114 public void onMeasure(MeasureEvent e) { |
111 updateMeasure(e.getMeasure(), e.getUnits()); | 115 updateMeasureArea(e.getMeasure(), e.getUnits()); |
112 } | 116 } |
113 }); | 117 }); |
114 measurePolygon.addMeasurePartialListener(new MeasurePartialListener() { | 118 measurePolygon.addMeasurePartialListener(new MeasurePartialListener() { |
115 public void onMeasurePartial(MeasureEvent e) { | 119 public void onMeasurePartial(MeasureEvent e) { |
116 updateMeasure(e.getMeasure(), e.getUnits()); | 120 updateMeasureArea(e.getMeasure(), e.getUnits()); |
117 } | 121 } |
118 }); | 122 }); |
119 | 123 |
120 floodMap.getMap().addControl(measurePolygon); | 124 floodMap.getMap().addControl(measurePolygon); |
121 | 125 |
153 protected void updateMeasure(float value, String unit) { | 157 protected void updateMeasure(float value, String unit) { |
154 label.setContents(formatter.format(value) + " " + unit); | 158 label.setContents(formatter.format(value) + " " + unit); |
155 } | 159 } |
156 | 160 |
157 | 161 |
162 protected void updateMeasureArea(float value, String unit) { | |
163 float ha = value; | |
164 String ha_unit = unit; | |
165 | |
166 if (unit.equals("m")) { | |
167 ha = (float) value / AREA_FACTOR_M; | |
168 ha_unit = AREA_UNIT; | |
169 } | |
170 else if (unit.equals("km")) { | |
171 ha = (float) value * AREA_FACTOR_KM; | |
172 ha_unit = AREA_UNIT; | |
173 } | |
174 | |
175 label.setContents(formatter.format(ha) + " " + ha_unit); | |
176 } | |
177 | |
178 | |
158 public void activate(boolean activate) { | 179 public void activate(boolean activate) { |
159 if (!activate) { | 180 if (!activate) { |
160 clearMeasure(); | 181 clearMeasure(); |
161 activateMeasureLine(activate); | 182 activateMeasureLine(activate); |
162 activateMeasurePolygon(activate); | 183 activateMeasurePolygon(activate); |