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);

http://dive4elements.wald.intevation.org