annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java @ 1412:659a488243da

Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet. flys-client/trunk@3299 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 22 Nov 2011 13:04:46 +0000
parents 6a7cfe9d87fe
children 3484cbfaf369
rev   line source
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.map;
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
3 import java.util.List;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
4
823
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
5 import com.google.gwt.core.client.GWT;
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
6 import com.google.gwt.user.client.rpc.AsyncCallback;
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
7 import com.google.gwt.user.client.ui.HorizontalPanel;
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
8 import com.google.gwt.user.client.ui.Widget;
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
9
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.Canvas;
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
11 import com.smartgwt.client.widgets.events.ResizedEvent;
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
12 import com.smartgwt.client.widgets.events.ResizedHandler;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.layout.HLayout;
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
14 import com.smartgwt.client.widgets.layout.VLayout;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
16 import org.gwtopenmaps.openlayers.client.Bounds;
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
17 import org.gwtopenmaps.openlayers.client.Map;
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
18 import org.gwtopenmaps.openlayers.client.event.VectorFeatureAddedListener;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
19 import org.gwtopenmaps.openlayers.client.event.VectorFeatureAddedListener.FeatureAddedEvent;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
20 import org.gwtopenmaps.openlayers.client.event.VectorFeatureRemovedListener;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
21 import org.gwtopenmaps.openlayers.client.event.VectorFeatureRemovedListener.FeatureRemovedEvent;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
22 import org.gwtopenmaps.openlayers.client.feature.VectorFeature;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
23 import org.gwtopenmaps.openlayers.client.format.GeoJSON;
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
24 import org.gwtopenmaps.openlayers.client.layer.Layer;
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
25 import org.gwtopenmaps.openlayers.client.layer.Vector;
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
26 import org.gwtopenmaps.openlayers.client.layer.WMS;
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
27 import org.gwtopenmaps.openlayers.client.layer.WMSParams;
823
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
28 import org.gwtopenmaps.openlayers.client.layer.WMSOptions;
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
29
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
30 import de.intevation.flys.client.shared.model.Artifact;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
31 import de.intevation.flys.client.shared.model.ArtifactDescription;
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
32 import de.intevation.flys.client.shared.model.AttributedTheme;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 import de.intevation.flys.client.shared.model.Collection;
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
34 import de.intevation.flys.client.shared.model.Data;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
35 import de.intevation.flys.client.shared.model.DataItem;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
36 import de.intevation.flys.client.shared.model.DataList;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
37 import de.intevation.flys.client.shared.model.DefaultData;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
38 import de.intevation.flys.client.shared.model.DefaultDataItem;
1376
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
39 import de.intevation.flys.client.shared.model.MapConfig;
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
40 import de.intevation.flys.client.shared.model.Theme;
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
41 import de.intevation.flys.client.shared.model.ThemeList;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 import de.intevation.flys.client.shared.model.OutputMode;
1412
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
43 import de.intevation.flys.client.shared.model.WMSLayer;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
45 import de.intevation.flys.client.client.Config;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
46 import de.intevation.flys.client.client.services.StepForwardService;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
47 import de.intevation.flys.client.client.services.StepForwardServiceAsync;
1365
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
48 import de.intevation.flys.client.client.services.MapOutputService;
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
49 import de.intevation.flys.client.client.services.MapOutputServiceAsync;
1364
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
50 import de.intevation.flys.client.client.event.RedrawRequestHandler;
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
51 import de.intevation.flys.client.client.event.RedrawRequestEvent;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 import de.intevation.flys.client.client.ui.CollectionView;
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 import de.intevation.flys.client.client.ui.OutputTab;
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
54 import de.intevation.flys.client.client.ui.ThemePanel;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
1412
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
57 public class MapOutputTab
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
58 extends OutputTab
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
59 implements RedrawRequestHandler, ExternalWMSWindow.LayerLoader {
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60
823
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
61 public static final String DEFAULT_SRID = "4326";
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
62
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
63 public static final String BARRIERS_PARAMETER_KEY = "uesk.barriers";
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
64
1269
45791d12a1f4 Bugfix: #298 Floodmaps initial zoom is determined by the WSPLGEN layer's extent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 835
diff changeset
65 public static final String WSPLGEN_FACET = "floodmap.wsplgen";
45791d12a1f4 Bugfix: #298 Floodmaps initial zoom is determined by the WSPLGEN layer's extent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 835
diff changeset
66
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
67
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
68 protected StepForwardServiceAsync feedService =
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
69 GWT.create(StepForwardService.class);
823
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
70
1365
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
71 protected MapOutputServiceAsync mapService =
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
72 GWT.create(MapOutputService.class);
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
73
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
74 protected MapToolbar controlPanel;
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
75 protected ThemePanel themePanel;
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
76 protected Widget mapPanel;
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
77
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
78 protected FloodMap floodMap;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 public MapOutputTab(
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 String title,
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 Collection collection,
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 OutputMode mode,
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 CollectionView collectionView
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 ){
1364
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
87 super(title, collection, collectionView, mode);
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88
1376
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
89 mapService.doOut(collection, new AsyncCallback<MapConfig>() {
1365
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
90 public void onFailure(Throwable caught) {
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
91 GWT.log("MAP ERROR: " + caught.getMessage());
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
92 }
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
93
1376
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
94 public void onSuccess(MapConfig c) {
1365
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
95 GWT.log("MAP SUCCESS!");
1376
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
96
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
97 Bounds max = boundsFromString(c.getMaxExtent());
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
98 Bounds initial = boundsFromString(c.getInitialExtent());
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
99
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
100 if (initial == null) {
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
101 GWT.log("Warning: No initial extent set.");
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
102 initial = max;
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
103 }
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
104
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
105 setFloodmap(new FloodMap(c.getSrid(), max));
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
106
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
107 initLayout();
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
108 initBarriers();
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
109
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
110 GWT.log("MAX EXTENT: " + max);
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
111 GWT.log("ZOOM TO: " + initial);
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
112 getMap().zoomToExtent(initial);
1365
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
113 }
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
114 }
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
115 );
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 }
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 protected void initLayout() {
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
120 VLayout rootLayout = new VLayout();
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
121 rootLayout.setHeight100();
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
122 rootLayout.setWidth100();
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
123 rootLayout.setMembersMargin(2);
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
124
1386
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
125 final HLayout hlayout = new HLayout();
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
126 hlayout.setHeight("*");
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
127 hlayout.setWidth100();
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
128 hlayout.setMembersMargin(2);
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
129
1386
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
130 final Canvas themePanelWrapper = createThemePanel();
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
131
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
132 controlPanel = createControlPanel();
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 799
diff changeset
133 mapPanel = floodMap.getMapWidget();
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
134 final HorizontalPanel layout = new HorizontalPanel();
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
135 layout.setWidth("99%");
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
136 layout.setHeight("99%");
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
137 layout.add(mapPanel);
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
138
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
139 hlayout.addMember(themePanelWrapper);
1386
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
140 hlayout.addMember(layout);
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
141
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
142 rootLayout.addMember(controlPanel);
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
143 rootLayout.addMember(hlayout);
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
144
1386
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
145 hlayout.addResizedHandler(new ResizedHandler() {
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
146 public void onResized(ResizedEvent e) {
1386
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
147 Integer height = hlayout.getHeight();
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
148 Integer width = hlayout.getWidth() - themePanelWrapper.getWidth();
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
149
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
150 height = height * 99 / 100;
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
151 width = width * 99 / 100;
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
152
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
153 String w = String.valueOf(width) + "px";
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
154 String h = String.valueOf(height) + "px";
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
155
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
156 floodMap.setSize(w, h);
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
157 }
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
158 });
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
159
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
160 setPane(rootLayout);
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
161 }
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
162
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
163
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
164 protected void initBarriers() {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
165 Vector vector = floodMap.getBarrierLayer();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
166 vector.addVectorFeatureAddedListener(
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
167 new VectorFeatureAddedListener() {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
168 public void onFeatureAdded(FeatureAddedEvent e) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
169 saveBarriers();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
170 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
171 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
172 );
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
173
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
174 vector.addVectorFeatureRemovedListener(
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
175 new VectorFeatureRemovedListener() {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
176 public void onFeatureRemoved(FeatureRemovedEvent e) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
177 saveBarriers();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
178 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
179 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
180 );
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
181
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
182
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
183 Artifact artifact = getArtifact();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
184
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
185 if (artifact == null) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
186 return;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
187 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
188
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
189 ArtifactDescription desc = artifact.getArtifactDescription();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
190
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
191 String geojson = getGeoJSONFromStatic(desc);
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
192 geojson = geojson != null ? geojson : getGeoJSONFromDynamic(desc);
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
193
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
194 if (geojson == null || geojson.length() == 0) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
195 GWT.log("No geojson string found -> no barriers existing.");
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
196 return;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
197 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
198
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
199 GeoJSON reader = new GeoJSON();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
200 VectorFeature[] features = reader.read(geojson);
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
201
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
202 vector.addFeatures(features);
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
203 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
204
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
205
1382
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
206 public void addLayer(Layer layer) {
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
207 Map map = getMap();
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
208
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
209 if (map != null) {
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
210 GWT.log("Add new layer '" + layer.getName() + "' to map.");
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
211 map.addLayer(layer);
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
212 }
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
213 }
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
214
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
215
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
216 public void removeLayer(String name) {
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
217 Map map = getMap();
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
218
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
219 Layer[] layers = map.getLayers();
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
220
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
221 for (Layer layer: layers) {
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
222 if (name.equals(layer.getName())) {
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
223 map.removeLayer(layer);
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
224 }
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
225 }
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
226 }
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
227
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
228
1364
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
229 @Override
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
230 public void onRedrawRequest(RedrawRequestEvent event) {
1382
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
231 mapService.doOut(collection, new AsyncCallback<MapConfig>() {
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
232 public void onFailure(Throwable caught) {
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
233 GWT.log("MAP ERROR: " + caught.getMessage());
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
234 }
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
235
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
236 public void onSuccess(MapConfig c) {
1397
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
237 GWT.log("We want to refresh the map now!");
1382
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
238 themePanel.updateCollection();
1397
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
239 getFloodmap().update();
1382
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
240 }
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
241 });
1364
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
242 }
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
243
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
244
1412
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
245 @Override
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
246 public void load(List<WMSLayer> toLoad) {
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
247 GWT.log("The user wants to add " + toLoad.size() + " new WMS layers.");
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
248 // TODO
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
249 }
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
250
659a488243da Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1403
diff changeset
251
1376
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
252 protected void setFloodmap(FloodMap floodMap) {
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
253 this.floodMap = floodMap;
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
254 }
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
255
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
256
1397
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
257 protected FloodMap getFloodmap() {
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
258 return floodMap;
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
259 }
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
260
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
261
1306
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
262 protected Map getMap() {
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
263 return floodMap.getMap();
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
264 }
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
265
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
266
1382
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
267 protected ThemePanel getThemePanel() {
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
268 return themePanel;
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
269 }
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
270
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
271
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
272 protected String getGeoJSONFromDynamic(ArtifactDescription desc) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
273 DataList list = desc.getCurrentData();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
274
835
c89a42950d11 Removed the digitize controls from map widget that is used in the floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 825
diff changeset
275 if (list == null) {
c89a42950d11 Removed the digitize controls from map widget that is used in the floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 825
diff changeset
276 return null;
c89a42950d11 Removed the digitize controls from map widget that is used in the floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 825
diff changeset
277 }
c89a42950d11 Removed the digitize controls from map widget that is used in the floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 825
diff changeset
278
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
279 List<Data> datas = list.getAll();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
280 for (Data data: datas) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
281 String key = data.getLabel();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
282
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
283 if (key != null && key.equals(BARRIERS_PARAMETER_KEY)) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
284 DataItem def = data.getDefault();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
285
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
286 if (def != null) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
287 return def.getStringValue();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
288 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
289 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
290 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
291
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
292 return null;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
293 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
294
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
295
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
296 protected String getGeoJSONFromStatic(ArtifactDescription desc) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
297 // TODO Implement this method, if there are reachable states right after
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
298 // the floodmap state - which is currently not the case.
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
299 return null;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
300 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
301
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
302
823
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
303 public ThemeList getThemeList() {
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
304 return collection.getThemeList(mode.getName());
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
305 }
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
306
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
307
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
308 public String getSrid() {
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
309 ThemeList themeList = getThemeList();
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
310
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
311 int num = themeList.getThemeCount();
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
312
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
313 for (int i = 1; i <= num; i++) {
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
314 AttributedTheme theme = (AttributedTheme) themeList.getThemeAt(i);
835
c89a42950d11 Removed the digitize controls from map widget that is used in the floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 825
diff changeset
315
c89a42950d11 Removed the digitize controls from map widget that is used in the floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 825
diff changeset
316 if (theme == null) {
c89a42950d11 Removed the digitize controls from map widget that is used in the floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 825
diff changeset
317 continue;
c89a42950d11 Removed the digitize controls from map widget that is used in the floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 825
diff changeset
318 }
c89a42950d11 Removed the digitize controls from map widget that is used in the floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 825
diff changeset
319
823
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
320 String srid = theme.getAttr("srid");
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
321
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
322 if (srid != null && srid.length() > 0) {
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
323 return srid;
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
324 }
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
325 }
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
326
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
327 return DEFAULT_SRID;
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
328 }
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
329
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
330
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
331 protected Bounds boundsFromString(String bounds) {
1376
28eb4dfe2cbf Call Collection.doOut to retrieve a map config and use this config to build up an OpenLayers map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1370
diff changeset
332 GWT.log("Create Bounds from String: '" + bounds + "'");
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
333 if (bounds == null || bounds.length() == 0) {
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
334 return null;
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
335 }
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
336
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
337 String[] values = bounds.split(" ");
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
338
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
339 if (values == null || values.length < 4) {
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
340 return null;
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
341 }
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
342
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
343 try {
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
344 return new Bounds(
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
345 Double.valueOf(values[0]),
823
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
346 Double.valueOf(values[1]),
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
347 Double.valueOf(values[2]),
823
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
348 Double.valueOf(values[3]));
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
349 }
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
350 catch (NumberFormatException nfe) {}
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
351
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
352 return null;
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
353 }
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
354
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
355
1382
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
356 public Layer createWMSLayer(Theme theme) {
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
357 if (theme == null) {
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
358 return null;
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
359 }
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
360
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
361 AttributedTheme at = (AttributedTheme) theme;
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
362
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1397
diff changeset
363 String type = at.getAttr("name");
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1397
diff changeset
364 String desc = at.getAttr("description");
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1397
diff changeset
365 String url = at.getAttr("url");
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1397
diff changeset
366 String layers = at.getAttr("layers");
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
367
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
368 if (url == null || layers == null) {
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
369 return null;
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
370 }
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
371
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
372 //boolean baseLayer = type.equals("floodmap.wmsbackground");
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
373
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
374 WMSParams params = new WMSParams();
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
375 params.setLayers(layers);
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
376 params.setFormat("image/png");
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
377 params.setIsTransparent(true);
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
378
823
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
379 WMSOptions opts = new WMSOptions();
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
380 opts.setProjection("EPSG:" + getSrid());
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
381 opts.setSingleTile(true);
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
382 opts.setRatio(1);
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
383
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1397
diff changeset
384 WMS wms = new WMS(layers, url, params, opts);
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
385 wms.setIsVisible(at.getActive() == 1);
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
386 wms.setIsBaseLayer(false);
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
387
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
388 return wms;
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
389 }
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
390
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
391
1386
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
392 protected MapToolbar createControlPanel() {
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
393 return new MapToolbar(this, floodMap, false);
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
394 }
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
395
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
396
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
397 protected Canvas createThemePanel() {
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
398 Canvas c = new Canvas();
1327
8a93fb299e64 #288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1306
diff changeset
399 c.setMinWidth(300);
8a93fb299e64 #288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1306
diff changeset
400 c.setWidth(300);
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
401 c.setHeight100();
1327
8a93fb299e64 #288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1306
diff changeset
402 c.setCanDragResize(true);
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
403 c.setBorder("1px solid black");
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
404
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
405 themePanel = new MapThemePanel(
1306
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
406 collection,
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
407 mode,
1382
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
408 this,
1306
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
409 new MapThemePanel.ActivateCallback() {
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
410 public void activate(Theme theme, boolean active) {
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
411 activateTheme(theme, active);
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
412 }
1306
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
413 },
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
414 new MapThemePanel.ThemeMovedCallback() {
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
415 public void onThemeMoved(Theme theme, int oldIdx, int newIdx) {
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
416 // this code synchronizes the ThemePanel and the OpenLayers
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
417 // internal order of layers.
1403
6a7cfe9d87fe Repaired broken WMS layer controls in map theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
418 AttributedTheme at = (AttributedTheme) theme;
6a7cfe9d87fe Repaired broken WMS layer controls in map theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
419
6a7cfe9d87fe Repaired broken WMS layer controls in map theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
420 String name = at.getAttr("layers");
1306
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
421 Map map = getMap();
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
422 Layer[] layers = map.getLayersByName(name);
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
423
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
424 if (layers == null || layers.length == 0) {
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
425 GWT.log("Error: Cannot find layer '" + name + "'");
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
426 return;
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
427 }
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
428
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
429 map.raiseLayer(layers[0], (newIdx-oldIdx)*-1);
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
430 map.zoomTo(map.getZoom()-1);
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
431 map.zoomTo(map.getZoom()+1);
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
432 }
1377
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
433 },
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
434 new MapThemePanel.LayerZoomCallback() {
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
435 public void onLayerZoom(Theme theme, String extent) {
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
436 Bounds zoomTo = boundsFromString(extent);
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
437
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
438 if (zoomTo == null) {
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
439 GWT.log("WARNING: No valid bounds for zooming found!");
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
440 return;
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
441 }
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
442
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
443 getMap().zoomToExtent(zoomTo);
b0fe35d4ce6b Added a 'zoom to layer' menu item to the map theme panel which triggers a zoom to the specific layer/theme.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1376
diff changeset
444 }
1306
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
445 }
2e57776f77b5 #300 Synchronized the ThemePanel's layer order with the internal order of the Map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1269
diff changeset
446 );
1397
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
447 themePanel.addRedrawRequestHandler(this);
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
448 c.addChild(themePanel);
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
449
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
450 return c;
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
451 }
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
452
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
453
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
454 protected void activateTheme(Theme theme, boolean active) {
1403
6a7cfe9d87fe Repaired broken WMS layer controls in map theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
455 AttributedTheme at = (AttributedTheme) theme;
6a7cfe9d87fe Repaired broken WMS layer controls in map theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
456
6a7cfe9d87fe Repaired broken WMS layer controls in map theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
457 String name = at.getAttr("layers");
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
458 Layer layer = floodMap.getMap().getLayerByName(name);
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
459
1382
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
460 GWT.log("Set visibility of '" + name + "': " + active);
78542ff1f562 Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1377
diff changeset
461
806
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
462 if (layer != null) {
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
463 layer.setIsVisible(active);
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
464 }
e50da1f74e58 The layers created in the floodmap reflect to the facets this output mode has.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
465 }
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
466
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
467
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
468 protected void saveBarriers() {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
469 Vector layer = floodMap.getBarrierLayer();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
470
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
471 GeoJSON format = new GeoJSON();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
472 String features = format.write(layer.getFeatures());
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
473
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
474 DataItem item = new DefaultDataItem(
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
475 BARRIERS_PARAMETER_KEY, BARRIERS_PARAMETER_KEY, features);
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
476
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
477 Data data = new DefaultData(
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
478 BARRIERS_PARAMETER_KEY, BARRIERS_PARAMETER_KEY, "String",
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
479 new DataItem[] {item} );
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
480
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
481 Config config = Config.getInstance();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
482 final String url = config.getServerUrl();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
483 final String locale = config.getLocale();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
484
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
485 feedService.go(url, locale, getArtifact(), new Data[] { data },
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
486 new AsyncCallback<Artifact>() {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
487 public void onFailure(Throwable caught) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
488 GWT.log("Could not save barrier geometries: " +
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
489 caught.getMessage());
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
490 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
491
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
492 public void onSuccess(Artifact artifact) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
493 GWT.log("Successfully saved barrier geometries.");
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
494 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
495 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
496 );
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
497 }
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
498 }
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
499 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org