Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java @ 1306:2e57776f77b5
#300 Synchronized the ThemePanel's layer order with the internal order of the Map.
flys-client/trunk@2940 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 11 Oct 2011 13:25:18 +0000 |
parents | 45791d12a1f4 |
children | 8a93fb299e64 |
comparison
equal
deleted
inserted
replaced
1305:014fc183c640 | 1306:2e57776f77b5 |
---|---|
144 | 144 |
145 Map map = floodMap.getMap(); | 145 Map map = floodMap.getMap(); |
146 Bounds extent = null; | 146 Bounds extent = null; |
147 Bounds wsplgenExtent = null; | 147 Bounds wsplgenExtent = null; |
148 | 148 |
149 for (int i = 1; i <= num; i++) { | 149 for (int i = num; i >= 0; i--) { |
150 Theme theme = themeList.getThemeAt(i); | 150 Theme theme = themeList.getThemeAt(i); |
151 Layer layer = createWMSLayer(theme); | 151 Layer layer = createWMSLayer(theme); |
152 | 152 |
153 if (layer == null) { | 153 if (layer == null) { |
154 continue; | 154 continue; |
229 | 229 |
230 vector.addFeatures(features); | 230 vector.addFeatures(features); |
231 } | 231 } |
232 | 232 |
233 | 233 |
234 protected Map getMap() { | |
235 return floodMap.getMap(); | |
236 } | |
237 | |
238 | |
234 protected String getGeoJSONFromDynamic(ArtifactDescription desc) { | 239 protected String getGeoJSONFromDynamic(ArtifactDescription desc) { |
235 DataList list = desc.getCurrentData(); | 240 DataList list = desc.getCurrentData(); |
236 | 241 |
237 if (list == null) { | 242 if (list == null) { |
238 return null; | 243 return null; |
399 c.setWidth(200); | 404 c.setWidth(200); |
400 c.setHeight100(); | 405 c.setHeight100(); |
401 c.setBorder("1px solid black"); | 406 c.setBorder("1px solid black"); |
402 | 407 |
403 themePanel = new MapThemePanel( | 408 themePanel = new MapThemePanel( |
404 collection, mode, new MapThemePanel.ActivateCallback() { | 409 collection, |
410 mode, | |
411 new MapThemePanel.ActivateCallback() { | |
405 public void activate(Theme theme, boolean active) { | 412 public void activate(Theme theme, boolean active) { |
406 activateTheme(theme, active); | 413 activateTheme(theme, active); |
407 } | 414 } |
408 }); | 415 }, |
416 new MapThemePanel.ThemeMovedCallback() { | |
417 public void onThemeMoved(Theme theme, int oldIdx, int newIdx) { | |
418 // this code synchronizes the ThemePanel and the OpenLayers | |
419 // internal order of layers. | |
420 String name = theme.getDescription(); | |
421 Map map = getMap(); | |
422 Layer[] layers = map.getLayersByName(name); | |
423 | |
424 if (layers == null || layers.length == 0) { | |
425 GWT.log("Error: Cannot find layer '" + name + "'"); | |
426 return; | |
427 } | |
428 | |
429 map.raiseLayer(layers[0], (newIdx-oldIdx)*-1); | |
430 map.zoomTo(map.getZoom()-1); | |
431 map.zoomTo(map.getZoom()+1); | |
432 } | |
433 } | |
434 ); | |
409 c.addChild(themePanel); | 435 c.addChild(themePanel); |
410 | 436 |
411 return c; | 437 return c; |
412 } | 438 } |
413 | 439 |