annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/MapOutputTab.java @ 9561:5397555d74c9

MapOutputTab fix
author gernotbelger
date Thu, 25 Oct 2018 17:00:58 +0200
parents 992c188b7330
children
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui.map;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
11 import java.util.HashMap;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
12 import java.util.List;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
14 import org.dive4elements.river.client.client.Config;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
15 import org.dive4elements.river.client.client.FLYSConstants;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
16 import org.dive4elements.river.client.client.event.OutputParameterChangeEvent;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
17 import org.dive4elements.river.client.client.event.OutputParameterChangeHandler;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
18 import org.dive4elements.river.client.client.event.RedrawRequestEvent;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
19 import org.dive4elements.river.client.client.event.RedrawRequestHandler;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
20 import org.dive4elements.river.client.client.services.LoadArtifactService;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
21 import org.dive4elements.river.client.client.services.LoadArtifactServiceAsync;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
22 import org.dive4elements.river.client.client.services.MapOutputService;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
23 import org.dive4elements.river.client.client.services.MapOutputServiceAsync;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
24 import org.dive4elements.river.client.client.services.StepForwardService;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
25 import org.dive4elements.river.client.client.services.StepForwardServiceAsync;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
26 import org.dive4elements.river.client.client.ui.CollectionView;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
27 import org.dive4elements.river.client.client.ui.OutputTab;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
28 import org.dive4elements.river.client.client.ui.ThemePanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
29 import org.dive4elements.river.client.shared.model.Artifact;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
30 import org.dive4elements.river.client.shared.model.ArtifactDescription;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
31 import org.dive4elements.river.client.shared.model.AttributedTheme;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
32 import org.dive4elements.river.client.shared.model.Collection;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
33 import org.dive4elements.river.client.shared.model.Data;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
34 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
35 import org.dive4elements.river.client.shared.model.DataList;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
36 import org.dive4elements.river.client.shared.model.DefaultData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
37 import org.dive4elements.river.client.shared.model.DefaultDataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
38 import org.dive4elements.river.client.shared.model.MapConfig;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
39 import org.dive4elements.river.client.shared.model.OutputMode;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
40 import org.dive4elements.river.client.shared.model.Recommendation;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
41 import org.dive4elements.river.client.shared.model.Theme;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
42 import org.dive4elements.river.client.shared.model.ThemeList;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
43 import org.dive4elements.river.client.shared.model.WMSLayer;
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
44 import org.gwtopenmaps.openlayers.client.Bounds;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
45 import org.gwtopenmaps.openlayers.client.Map;
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
46 import org.gwtopenmaps.openlayers.client.MapWidget;
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
47 import org.gwtopenmaps.openlayers.client.event.VectorFeatureAddedListener;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
48 import org.gwtopenmaps.openlayers.client.event.VectorFeatureRemovedListener;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
49 import org.gwtopenmaps.openlayers.client.feature.VectorFeature;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
50 import org.gwtopenmaps.openlayers.client.format.GeoJSON;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
51 import org.gwtopenmaps.openlayers.client.layer.Layer;
5612
4f935415bb20 Hopefully fix for some map resizing issues.
Christian Lins <christian.lins@intevation.de>
parents: 5032
diff changeset
52 import org.gwtopenmaps.openlayers.client.layer.TransitionEffect;
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
53 import org.gwtopenmaps.openlayers.client.layer.Vector;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
54 import org.gwtopenmaps.openlayers.client.layer.WMS;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
55 import org.gwtopenmaps.openlayers.client.layer.WMSOptions;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
56 import org.gwtopenmaps.openlayers.client.layer.WMSParams;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
58 import com.google.gwt.core.client.GWT;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
59 import com.google.gwt.user.client.rpc.AsyncCallback;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
60 import com.google.gwt.user.client.ui.AbsolutePanel;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
61 import com.smartgwt.client.util.SC;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
62 import com.smartgwt.client.widgets.Canvas;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
63 import com.smartgwt.client.widgets.events.ParentMovedEvent;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
64 import com.smartgwt.client.widgets.events.ParentMovedHandler;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
65 import com.smartgwt.client.widgets.events.ResizedEvent;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
66 import com.smartgwt.client.widgets.events.ResizedHandler;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
67 import com.smartgwt.client.widgets.layout.HLayout;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
68 import com.smartgwt.client.widgets.layout.VLayout;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
69 import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
70 import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
72 public class MapOutputTab extends OutputTab implements RedrawRequestHandler, ExternalWMSWindow.LayerLoader, TabSelectedHandler, OutputParameterChangeHandler {
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
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
74 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
75
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
76 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
77
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
78 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
79
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
80 public static final String EXTERNAL_WMS_FACTORY = "externalwmsfactory";
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
81
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
82 protected StepForwardServiceAsync feedService = GWT.create(StepForwardService.class);
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
83
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
84 protected MapOutputServiceAsync mapService = GWT.create(MapOutputService.class);
1365
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
85
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
86 /** Service handle to clone and add artifacts to collection. */
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
87 protected LoadArtifactServiceAsync loadArtifactService = GWT.create(LoadArtifactService.class);
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
88
1415
dfa2d4753fc0 Triggered the reload of MapThemePanel after adding external WMS layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
89 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
dfa2d4753fc0 Triggered the reload of MapThemePanel after adding external WMS layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
90
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
91 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
92 protected ThemePanel themePanel;
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
93 protected Canvas themePanelCanvas;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
94 protected MapWidget mapPanel;
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2983
diff changeset
95 protected Canvas mapPanelCanvas;
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
96 protected VLayout rootLayout = new VLayout();
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
97 protected AbsolutePanel absPan = new AbsolutePanel();
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
98 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
99
9561
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
100 private boolean cancel = false;
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
101
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
102 private final java.util.Map<String, String> wmsUrls = new HashMap<String, String>();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
103
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
104 public MapOutputTab(final String title, final Collection collection, final OutputMode mode, final CollectionView collectionView) {
1364
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
105 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
106
1542
3e2ef8e0a0dc Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1448
diff changeset
107 collectionView.registerTabHandler(this);
3e2ef8e0a0dc Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1448
diff changeset
108
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
109 this.mapService.doOut(collection, new AsyncCallback<MapConfig>() {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
110 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
111 public void onFailure(final Throwable caught) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
112 GWT.log("MAP ERROR: " + caught.getMessage());
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
113 }
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
114
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
115 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
116 public void onSuccess(final MapConfig c) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
117 GWT.log("MAP SUCCESS!");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
118
9561
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
119 if (!MapOutputTab.this.cancel) {
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
120 final Bounds max = boundsFromString(c.getMaxExtent());
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
121 Bounds initial = boundsFromString(c.getInitialExtent());
1365
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
122
9561
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
123 if (initial == null) {
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
124 GWT.log("Warning: No initial extent set.");
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
125 initial = max;
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
126 }
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
127
9561
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
128 setFloodmap(new FloodMap(c.getSrid(), max, 640, 480));
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
129
9561
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
130 initLayout();
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
131
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
132 initBarriers();
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
133
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
134 GWT.log("MAX EXTENT: " + max);
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
135 GWT.log("ZOOM TO: " + initial);
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
136 getMap().zoomToExtent(initial);
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
137 }
1365
4c65c5b60a86 First step of refactoring the map creation - implemented a MapOutputService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1364
diff changeset
138 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
139 });
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 }
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141
9561
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
142 public void cancelMapService() {
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
143
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
144 this.cancel = true;
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
145
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
146 // if (this.floodMap != null)
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
147 // this.floodMap.destroy();
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
148 }
5397555d74c9 MapOutputTab fix
gernotbelger
parents: 9483
diff changeset
149
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 protected void initLayout() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
151 this.rootLayout.setHeight100();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
152 this.rootLayout.setWidth100();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
153 this.rootLayout.setMembersMargin(2);
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
154
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
155 final HLayout hlayout = new HLayout();
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
156 hlayout.setMembersMargin(0);
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
157
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
158 this.themePanelCanvas = createThemePanel();
1386
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
159
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
160 this.controlPanel = createControlPanel();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
161 this.mapPanel = this.floodMap.getMapWidget();
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
162
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
163 this.rootLayout.addMember(this.controlPanel);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
164 this.rootLayout.addMember(this.absPan);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
165 this.absPan.setWidth("100%");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
166 this.absPan.setHeight("100%");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
167 this.absPan.add(this.themePanelCanvas);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
168 this.absPan.add(this.mapPanel);
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
169
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
170 this.rootLayout.addResizedHandler(new ResizedHandler() {
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
171 @Override
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
172 public void onResized(final ResizedEvent e) {
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
173 doLayout();
798
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
174 }
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
175 });
7061c2e66039 Finished layouting the map components.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 797
diff changeset
176
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
177 this.rootLayout.addParentMovedHandler(new ParentMovedHandler() {
4570
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4531
diff changeset
178 @Override
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
179 public void onParentMoved(final ParentMovedEvent event) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
180 MapOutputTab.this.mapPanel.getMap().updateSize();
4570
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4531
diff changeset
181 }
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4531
diff changeset
182 });
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4531
diff changeset
183
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
184 setPane(this.rootLayout);
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
185 }
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
186
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
187 protected void doLayout() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
188 if (!this.rootLayout.isVisible()) {
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
189 return;
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
190 }
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
191
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 5993
diff changeset
192 // Manually set the height of the AbsolutePanel,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 5993
diff changeset
193 // somehow this is necessary
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
194 this.absPan.setHeight(String.valueOf(this.rootLayout.getHeight() - this.controlPanel.getHeight() - 2) + "px");
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
195
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
196 // Calculate bounds of Map
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
197 final int height = this.rootLayout.getHeight() - this.controlPanel.getHeight() - 6;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
198 final int width = this.controlPanel.getWidth() - (this.themePanelCanvas.isVisible() ? this.themePanelCanvas.getWidth() + 4 : 2);
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
199
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
200 // Set size and position of Map
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
201 final String w = String.valueOf(width) + "px";
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
202 final String h = String.valueOf(height) + "px";
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
203 GWT.log("width=" + w);
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
204
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
205 this.mapPanel.setSize(w, h);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
206 this.mapPanel.getMap().updateSize();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
207 if (this.themePanelCanvas.isVisible()) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
208 this.absPan.setWidgetPosition(this.mapPanel, this.themePanelCanvas.getWidth() + 2, 0);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
209 } else {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
210 this.absPan.setWidgetPosition(this.mapPanel, 0, 0);
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
211 }
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
212
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
213 // Set bounds of ThemePanelCanvas
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
214 this.themePanelCanvas.setSize(this.themePanelCanvas.getWidthAsString(), String.valueOf(height + 2) + "px");
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
215 }
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
216
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
217 protected void initBarriers() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
218 final Vector vector = this.floodMap.getBarrierLayer();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
219 vector.addVectorFeatureAddedListener(new VectorFeatureAddedListener() {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
220 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
221 public void onFeatureAdded(final FeatureAddedEvent e) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
222 saveBarriers();
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
223 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
224 });
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
225
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
226 vector.addVectorFeatureRemovedListener(new VectorFeatureRemovedListener() {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
227 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
228 public void onFeatureRemoved(final FeatureRemovedEvent e) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
229 saveBarriers();
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
230 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
231 });
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
232
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
233 final Artifact artifact = getArtifact();
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
234
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
235 if (artifact == null) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
236 return;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
237 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
238
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
239 final ArtifactDescription desc = artifact.getArtifactDescription();
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
240
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
241 String geojson = getGeoJSONFromStatic(desc);
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 5993
diff changeset
242 geojson = geojson != null ? geojson : getGeoJSONFromDynamic(desc);
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
243
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
244 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
245 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
246 return;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
247 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
248
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
249 final GeoJSON reader = new GeoJSON();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
250 final VectorFeature[] features = reader.read(geojson);
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
251
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
252 vector.addFeatures(features);
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
253 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
254
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
255 public void addLayer(final Theme newTheme) {
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
256
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
257 final Layer layer = createWMSLayer(newTheme);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
258
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
259 final FloodMap map = getFloodmap();
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
260
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
261 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
262 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
263 map.addLayer(layer);
5793
4cc59122b682 Use fullRequestString as WMS Url
Andre Heinecke <aheinecke@intevation.de>
parents: 5612
diff changeset
264 if (layer instanceof WMS) {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
265 this.wmsUrls.put(layer.getName(), ((WMS) layer).getFullRequestString(new WMSParams(), null));
5793
4cc59122b682 Use fullRequestString as WMS Url
Andre Heinecke <aheinecke@intevation.de>
parents: 5612
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 }
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 }
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
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
270 public void removeLayer(final Theme theme) {
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
271
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
272 final String layerId = getLayerId(theme);
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
273
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
274 final Map map = getMap();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
275
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
276 final Layer[] layers = map.getLayers();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
277
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
278 for (final Layer layer : layers) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
279 if (layerId.equals(layer.getName())) {
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
280 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
281 }
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
282 }
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
283 }
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
284
1364
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
285 @Override
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
286 public void onRedrawRequest(final RedrawRequestEvent event) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
287 this.mapService.doOut(this.collection, new AsyncCallback<MapConfig>() {
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
288 @Override
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
289 public void onFailure(final Throwable caught) {
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
290 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
291 }
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
292
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
293 @Override
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
294 public void onSuccess(final MapConfig c) {
1397
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
295 GWT.log("We want to refresh the map now!");
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
296 MapOutputTab.this.themePanel.updateCollection();
1397
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
297 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
298 }
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
299 });
1364
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
300 }
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1327
diff changeset
301
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
302 @Override
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
303 public void load(final List<WMSLayer> toLoad) {
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
304 GWT.log("The user wants to add " + toLoad.size() + " new WMS layers.");
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
305
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
306 final int len = toLoad.size();
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
307
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
308 final Recommendation[] recom = new Recommendation[len];
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
309
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
310 for (int i = 0; i < len; i++) {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
311 final WMSLayer w = toLoad.get(i);
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
312
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
313 final String ids = w.getServer() + ";" + w.getName() + ";" + w.getTitle();
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
314 recom[i] = new Recommendation(EXTERNAL_WMS_FACTORY, ids);
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
315 }
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
316
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
317 final Collection c = getCollection();
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
318
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
319 final Config config = Config.getInstance();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
320 final String locale = config.getLocale();
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
321
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
322 this.loadArtifactService.loadMany(c, recom, EXTERNAL_WMS_FACTORY, locale, new AsyncCallback<Artifact[]>() {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
323
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
324 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
325 public void onFailure(final Throwable throwable) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
326 SC.warn(MapOutputTab.this.MSG.getString(throwable.getMessage()));
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1412
diff changeset
327 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
328
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
329 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
330 public void onSuccess(final Artifact[] newArtifacts) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
331 getThemePanel().updateCollection();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
332 }
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
333 });
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
334 }
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
335
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
336 protected void setFloodmap(final FloodMap floodMap) {
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
337 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
338 }
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
339
1397
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
340 protected FloodMap getFloodmap() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
341 return this.floodMap;
1397
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
342 }
b3264b5770b3 Update the map when receiving a RedrawRequestEvent.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1386
diff changeset
343
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
344 protected Map getMap() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
345 return this.floodMap.getMap();
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
346 }
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
347
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
348 protected ThemePanel getThemePanel() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
349 return this.themePanel;
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
350 }
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
351
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
352 protected String getGeoJSONFromDynamic(final ArtifactDescription desc) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
353 final DataList list = desc.getCurrentData();
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
354
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
355 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
356 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
357 }
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
358
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
359 final List<Data> datas = list.getAll();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
360 for (final Data data : datas) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
361 final String key = data.getLabel();
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
362
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
363 if (key != null && key.equals(BARRIERS_PARAMETER_KEY)) {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
364 final DataItem def = data.getDefault();
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
365
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
366 if (def != null) {
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
367 return def.getStringValue();
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
368 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
369 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
370 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
371
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
372 return null;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
373 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
374
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
375 protected String getGeoJSONFromStatic(final ArtifactDescription desc) {
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
376 // 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
377 // 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
378 return null;
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
379 }
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
380
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
381 public ThemeList getThemeList() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
382 return this.collection.getThemeList(this.mode.getName());
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
383 }
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
384
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
385 public String getSrid() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
386 final ThemeList themeList = getThemeList();
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
387
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
388 final int num = themeList.getThemeCount();
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
389
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
390 for (int i = 1; i <= num; i++) {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
391 final 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
392
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
393 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
394 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
395 }
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
396
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
397 final String srid = theme.getAttr("srid");
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
398
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
399 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
400 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
401 }
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
402 }
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
403
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
404 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
405 }
407de0f4b66a Set the map projection and its max extent dynamically - information extracted from facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
406
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
407 protected Bounds boundsFromString(final 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
408 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
409 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
410 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
411 }
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
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
413 final String[] values = bounds.split(" ");
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
414
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
415 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
416 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
417 }
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
418
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
419 try {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
420 return new Bounds(Double.valueOf(values[0]), Double.valueOf(values[1]), Double.valueOf(values[2]), 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
421 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
422 catch (final NumberFormatException nfe) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
423 }
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
424
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
425 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
426 }
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
427
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
428 private Layer createWMSLayer(final Theme theme) {
4752
ce570c74aa94 Removed null comparison where also instanceof is used.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4739
diff changeset
429 if (!(theme instanceof AttributedTheme)) {
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
430 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
431 }
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
432
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
433 final AttributedTheme at = (AttributedTheme) 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
434
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
435 // final String desc = at.getAttr("description");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
436 final String url = at.getAttr("url");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
437 final String layers = at.getAttr("layers");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
438
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
439 final String layerId = getLayerId(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
440
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
441 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
442 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
443 }
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
444
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
445 final WMSParams params = new WMSParams();
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
446 params.setLayers(layers);
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
447 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
448 params.setIsTransparent(true);
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
449
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
450 final WMSOptions opts = new WMSOptions();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
451
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
452 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
453 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
454 opts.setRatio(1);
5032
4bf3b89b38d5 Added attribution to osm wms background layer.
Raimund Renkert <rrenkert@intevation.de>
parents: 4752
diff changeset
455 if (layers.equals("OSM-WMS-Dienst")) {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
456 opts.setAttribution(this.MSG.attribution());
5612
4f935415bb20 Hopefully fix for some map resizing issues.
Christian Lins <christian.lins@intevation.de>
parents: 5032
diff changeset
457 opts.setSingleTile(true);
4f935415bb20 Hopefully fix for some map resizing issues.
Christian Lins <christian.lins@intevation.de>
parents: 5032
diff changeset
458 opts.setTransitionEffect(TransitionEffect.RESIZE);
5032
4bf3b89b38d5 Added attribution to osm wms background layer.
Raimund Renkert <rrenkert@intevation.de>
parents: 4752
diff changeset
459 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
460 final WMS wms = new WMS(layerId, 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
461 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
462 wms.setIsBaseLayer(false);
5793
4cc59122b682 Use fullRequestString as WMS Url
Andre Heinecke <aheinecke@intevation.de>
parents: 5612
diff changeset
463 // We can't set the full_url attribute here because map is not set
4cc59122b682 Use fullRequestString as WMS Url
Andre Heinecke <aheinecke@intevation.de>
parents: 5612
diff changeset
464 // at.addAttr("full_url", wms.getFullRequestString(params, null));
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
465 return wms;
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
466 }
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
467
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
468 private String getLayerId(final Theme theme) {
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
469
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
470 final AttributedTheme at = (AttributedTheme) theme;
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
471
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
472 final String name = at.getAttr("name");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
473 final String layers = at.getAttr("layers");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
474
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
475 return name + "_" + layers;
4739
5014a84c0c7d Add "maptype" parameter to MapInfoService.
Christian Lins <christian.lins@intevation.de>
parents: 4570
diff changeset
476 }
5014a84c0c7d Add "maptype" parameter to MapInfoService.
Christian Lins <christian.lins@intevation.de>
parents: 4570
diff changeset
477
1386
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1382
diff changeset
478 protected MapToolbar createControlPanel() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
479 return new MapToolbar(this, 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
480 }
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
481
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
482 protected Canvas createThemePanel() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
483 final Canvas c = new Canvas();
1327
8a93fb299e64 #288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1306
diff changeset
484 c.setMinWidth(300);
4330
93e023131546 Removed the legend images from map theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4329
diff changeset
485 c.setWidth(200);
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
486 c.setHeight100();
1327
8a93fb299e64 #288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1306
diff changeset
487 c.setCanDragResize(true);
797
cc3f481e9484 Introduced GwtOpenLayers to bring up maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 796
diff changeset
488 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
489
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
490 this.themePanel = new MapThemePanel(this.getCollectionView(), this.mode, this, new MapThemePanel.ActivateCallback() {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
491 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
492 public void activate(final Theme theme, final boolean active) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
493 fireActivateTheme(theme, active);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
494 }
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
495 }, new MapThemePanel.ThemeMovedCallback() {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
496 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
497 public void onThemeMoved(final Theme theme, final int oldIdx, final int newIdx) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
498 // this code synchronizes the ThemePanel and the OpenLayers
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
499 // internal order of layers.
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
500 final AttributedTheme at = (AttributedTheme) theme;
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
501
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
502 final String layerId = getLayerId(theme);
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
503
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
504 final Map map = getMap();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
505 final Layer[] layers = map.getLayersByName(layerId);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
506
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
507 if (layers == null || layers.length == 0) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
508 GWT.log("Error: Cannot find layer '" + layerId + "'");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
509 return;
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
510 }
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
511
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
512 map.raiseLayer(layers[0], (newIdx - oldIdx) * -1);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
513 map.zoomTo(map.getZoom() - 1);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
514 map.zoomTo(map.getZoom() + 1);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
515 }
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
516 }, new MapThemePanel.LayerZoomCallback() {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
517 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
518 public void onLayerZoom(final Theme theme, final String extent) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
519 final Bounds zoomTo = boundsFromString(extent);
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
520
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
521 if (zoomTo == null) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
522 GWT.log("WARNING: No valid bounds for zooming found!");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
523 return;
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
524 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
525
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
526 getMap().zoomToExtent(zoomTo);
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
527 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
528 });
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
529 this.themePanel.addRedrawRequestHandler(this);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
530 this.themePanel.addOutputParameterChangeHandler(this);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
531 c.addChild(this.themePanel);
796
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
532
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
533 return c;
cd8603aaa730 Improved the process of creating OutputTabs. Added support for map output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
534 }
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
535
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
536 private void fireActivateTheme(final Theme theme, final boolean active) {
4329
c9dcce9448f2 Added a new control 'show legend' to the map's toolbar. This control opens a window that displays the legends of all activated layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4064
diff changeset
537 activateTheme(theme, active);
c9dcce9448f2 Added a new control 'show legend' to the map's toolbar. This control opens a window that displays the legends of all activated layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4064
diff changeset
538 }
c9dcce9448f2 Added a new control 'show legend' to the map's toolbar. This control opens a window that displays the legends of all activated layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4064
diff changeset
539
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
540 protected void activateTheme(final Theme theme, final boolean active) {
1403
6a7cfe9d87fe Repaired broken WMS layer controls in map theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
541
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
542 final String layerId = getLayerId(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
543
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
544 final Layer layer = this.floodMap.getMap().getLayerByName(layerId);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
545
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
546 GWT.log("Set visibility of '" + layerId + "': " + active);
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
547
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
548 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
549 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
550 }
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
551 }
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
552
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
553 protected void saveBarriers() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
554 final Vector layer = this.floodMap.getBarrierLayer();
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
555
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
556 final GeoJSON format = new GeoJSON();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
557 final String features = format.write(layer.getFeatures());
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
558
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
559 final DataItem item = new DefaultDataItem(BARRIERS_PARAMETER_KEY, BARRIERS_PARAMETER_KEY, features);
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
560
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
561 final Data data = new DefaultData(BARRIERS_PARAMETER_KEY, BARRIERS_PARAMETER_KEY, "String", new DataItem[] { item });
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
562
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
563 final Config config = Config.getInstance();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
564 final String locale = config.getLocale();
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
565
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
566 this.feedService.go(locale, getArtifact(), new Data[] { data }, new AsyncCallback<Artifact>() {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
567 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
568 public void onFailure(final Throwable caught) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
569 GWT.log("Could not save barrier geometries: " + caught.getMessage());
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
570 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
571
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
572 @Override
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
573 public void onSuccess(final Artifact artifact) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
574 GWT.log("Successfully saved barrier geometries.");
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
575 }
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
576 });
825
1b9b7e9ab219 Save and reload user defined geometries (barriers) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 823
diff changeset
577 }
1542
3e2ef8e0a0dc Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1448
diff changeset
578
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
579 @Override
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
580 public void onTabSelected(final TabSelectedEvent tse) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
581 if (this.floodMap == null) {
1542
3e2ef8e0a0dc Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1448
diff changeset
582 return;
3e2ef8e0a0dc Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1448
diff changeset
583 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
584 if (this.equals(tse.getTab())) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
585 this.floodMap.activateScaleLine(true);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
586 } else {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
587 this.controlPanel.activateMeasureControl(false);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
588 this.floodMap.activateScaleLine(false);
1542
3e2ef8e0a0dc Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1448
diff changeset
589 }
3e2ef8e0a0dc Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1448
diff changeset
590 }
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
591
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
592 public void toogleThemePanel() {
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
593 this.themePanelCanvas.setVisible(!this.themePanelCanvas.isVisible());
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
594
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
595 // Trigger resize event handler
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4330
diff changeset
596 doLayout();
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 1555
diff changeset
597 }
4329
c9dcce9448f2 Added a new control 'show legend' to the map's toolbar. This control opens a window that displays the legends of all activated layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4064
diff changeset
598
c9dcce9448f2 Added a new control 'show legend' to the map's toolbar. This control opens a window that displays the legends of all activated layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4064
diff changeset
599 @Override
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
600 public void onOutputParameterChanged(final OutputParameterChangeEvent evt) {
4329
c9dcce9448f2 Added a new control 'show legend' to the map's toolbar. This control opens a window that displays the legends of all activated layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4064
diff changeset
601 GWT.log("OutputParameterChanged");
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
602 this.controlPanel.updateThemes(getThemePanel().getThemeList());
4329
c9dcce9448f2 Added a new control 'show legend' to the map's toolbar. This control opens a window that displays the legends of all activated layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4064
diff changeset
603 }
9483
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
604
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
605 public String getWMSUrl(final Theme theme) {
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
606 final String layerId = getLayerId(theme);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
607 return this.wmsUrls.get(layerId);
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
608 }
992c188b7330 wms uinfo.inundation
gernotbelger
parents: 8856
diff changeset
609 }

http://dive4elements.wald.intevation.org