comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java @ 1317:45b9b1fc26e2

Improved error handling while using the elevation control - Make selected features in the map visible. flys-client/trunk@2956 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 13 Oct 2011 10:22:39 +0000
parents cf0f906921de
children 9981ba2ee13a
comparison
equal deleted inserted replaced
1316:956605001cfb 1317:45b9b1fc26e2
309 // OpenLayers native mechanism to select features, but for some reason 309 // OpenLayers native mechanism to select features, but for some reason
310 // this doesn't work here. After a feature has been selected, the layer 310 // this doesn't work here. After a feature has been selected, the layer
311 // still has no selected features. 311 // still has no selected features.
312 opts.onSelect(new SelectFeature.SelectFeatureListener() { 312 opts.onSelect(new SelectFeature.SelectFeatureListener() {
313 public void onFeatureSelected(VectorFeature feature) { 313 public void onFeatureSelected(VectorFeature feature) {
314 Attributes attr = feature.getAttributes(); 314 floodMap.selectFeature(feature);
315 attr.setAttribute(FloodMap.MARK_SELECTED, 1);
316 } 315 }
317 }); 316 });
318 317
319 opts.onUnSelect(new SelectFeature.UnselectFeatureListener() { 318 opts.onUnSelect(new SelectFeature.UnselectFeatureListener() {
320 public void onFeatureUnselected(VectorFeature feature) { 319 public void onFeatureUnselected(VectorFeature feature) {
321 Attributes attr = feature.getAttributes(); 320 floodMap.disableFeature(feature);
322 attr.setAttribute(FloodMap.MARK_SELECTED, 0);
323 } 321 }
324 }); 322 });
325 323
326 selectFeature = new SelectFeature(floodMap.getBarrierLayer(), opts); 324 selectFeature = new SelectFeature(floodMap.getBarrierLayer(), opts);
327 getMap().addControl(selectFeature); 325 getMap().addControl(selectFeature);
335 activateMeasureControl(false); 333 activateMeasureControl(false);
336 } 334 }
337 335
338 public void disable() { 336 public void disable() {
339 activateSelectFeature(false); 337 activateSelectFeature(false);
338 floodMap.disableFeatures();
340 } 339 }
341 }; 340 };
342 341
343 ImgButton button = createToggleButton(MSG.selectFeature(), cmd); 342 ImgButton button = createToggleButton(MSG.selectFeature(), cmd);
344 button.setTooltip(MSG.selectObject()); 343 button.setTooltip(MSG.selectObject());
384 VectorFeature[] features = barriers.getFeatures(); 383 VectorFeature[] features = barriers.getFeatures();
385 384
386 VectorFeature feature = null; 385 VectorFeature feature = null;
387 386
388 if (features == null || features.length == 0) { 387 if (features == null || features.length == 0) {
389 SC.warn("No Feature selected!"); 388 SC.warn(MSG.error_no_feature_selected());
390 return; 389 return;
391 } 390 }
391
392 boolean multipleFeatures = false;
392 393
393 for (VectorFeature f: features) { 394 for (VectorFeature f: features) {
394 Attributes attr = f.getAttributes(); 395 Attributes attr = f.getAttributes();
395 if (attr.getAttributeAsInt(FloodMap.MARK_SELECTED) == 1) { 396 if (attr.getAttributeAsInt(FloodMap.MARK_SELECTED) == 1) {
396 if (feature == null) { 397 if (feature == null) {
397 feature = f; 398 feature = f;
398 } 399 }
399 else { 400 else {
400 SC.warn("More than 1 Feature selected!"); 401 multipleFeatures = true;
401 } 402 }
402 } 403 }
403 } 404 }
404 405
406 if (feature == null) {
407 SC.warn(MSG.error_no_feature_selected());
408 return;
409 }
410
405 new ElevationWindow(floodMap, feature).show(); 411 new ElevationWindow(floodMap, feature).show();
412
413 if (multipleFeatures) {
414 SC.warn(MSG.warning_use_first_feature());
415 }
406 } 416 }
407 }); 417 });
408 418
409 btn.setTooltip(MSG.adjustElevationTooltip()); 419 btn.setTooltip(MSG.adjustElevationTooltip());
410 420

http://dive4elements.wald.intevation.org