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

http://dive4elements.wald.intevation.org