Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/DigitizePanel.java @ 4062:145980c21700
Handle error conditions more robust.
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Mon, 08 Oct 2012 12:10:50 +0200 |
parents | 88b51e6e0334 |
children | 360e22afb98b |
comparison
equal
deleted
inserted
replaced
4057:c3b959de4d83 | 4062:145980c21700 |
---|---|
1 package de.intevation.flys.client.client.ui; | 1 package de.intevation.flys.client.client.ui; |
2 | |
3 import java.util.List; | |
4 import java.util.LinkedHashMap; | |
5 | 2 |
6 import com.google.gwt.core.client.GWT; | 3 import com.google.gwt.core.client.GWT; |
7 import com.google.gwt.user.client.rpc.AsyncCallback; | 4 import com.google.gwt.user.client.rpc.AsyncCallback; |
8 | 5 |
6 import com.smartgwt.client.types.Encoding; | |
7 import com.smartgwt.client.types.VerticalAlignment; | |
9 import com.smartgwt.client.util.SC; | 8 import com.smartgwt.client.util.SC; |
9 import com.smartgwt.client.widgets.Button; | |
10 import com.smartgwt.client.widgets.Canvas; | 10 import com.smartgwt.client.widgets.Canvas; |
11 import com.smartgwt.client.widgets.Button; | 11 import com.smartgwt.client.widgets.HTMLPane; |
12 import com.smartgwt.client.widgets.Label; | 12 import com.smartgwt.client.widgets.Label; |
13 import com.smartgwt.client.widgets.events.ClickEvent; | |
14 import com.smartgwt.client.widgets.events.ClickHandler; | |
13 import com.smartgwt.client.widgets.events.ResizedEvent; | 15 import com.smartgwt.client.widgets.events.ResizedEvent; |
14 import com.smartgwt.client.widgets.events.ResizedHandler; | 16 import com.smartgwt.client.widgets.events.ResizedHandler; |
15 import com.smartgwt.client.widgets.events.ClickEvent; | 17 import com.smartgwt.client.widgets.events.VisibilityChangedEvent; |
16 import com.smartgwt.client.widgets.events.ClickHandler; | 18 import com.smartgwt.client.widgets.events.VisibilityChangedHandler; |
19 import com.smartgwt.client.widgets.form.DynamicForm; | |
20 import com.smartgwt.client.widgets.form.fields.SelectItem; | |
21 import com.smartgwt.client.widgets.form.fields.UploadItem; | |
22 import com.smartgwt.client.widgets.layout.VLayout; | |
23 import com.smartgwt.client.widgets.tab.events.TabSelectedEvent; | |
17 import com.smartgwt.client.widgets.tab.events.TabSelectedHandler; | 24 import com.smartgwt.client.widgets.tab.events.TabSelectedHandler; |
18 import com.smartgwt.client.widgets.tab.events.TabSelectedEvent; | 25 |
19 import com.smartgwt.client.widgets.events.VisibilityChangedHandler; | 26 import de.intevation.flys.client.client.Config; |
20 import com.smartgwt.client.widgets.events.VisibilityChangedEvent; | 27 import de.intevation.flys.client.client.services.MapInfoService; |
21 import com.smartgwt.client.widgets.layout.VLayout; | 28 import de.intevation.flys.client.client.services.MapInfoServiceAsync; |
22 import com.smartgwt.client.widgets.form.DynamicForm; | 29 import de.intevation.flys.client.client.ui.map.FloodMap; |
23 import com.smartgwt.client.widgets.form.fields.UploadItem; | 30 import de.intevation.flys.client.client.ui.map.MapPanel; |
24 import com.smartgwt.client.widgets.form.fields.SelectItem; | |
25 import com.smartgwt.client.types.VerticalAlignment; | |
26 import com.smartgwt.client.widgets.HTMLPane; | |
27 import com.smartgwt.client.types.Encoding; | |
28 | |
29 import org.gwtopenmaps.openlayers.client.Map; | |
30 import org.gwtopenmaps.openlayers.client.feature.VectorFeature; | |
31 import org.gwtopenmaps.openlayers.client.format.GeoJSON; | |
32 import org.gwtopenmaps.openlayers.client.layer.WMS; | |
33 import org.gwtopenmaps.openlayers.client.layer.WMSParams; | |
34 import org.gwtopenmaps.openlayers.client.layer.WMSOptions; | |
35 | |
36 import de.intevation.flys.client.shared.model.Data; | 31 import de.intevation.flys.client.shared.model.Data; |
37 import de.intevation.flys.client.shared.model.DataItem; | 32 import de.intevation.flys.client.shared.model.DataItem; |
38 import de.intevation.flys.client.shared.model.DataList; | 33 import de.intevation.flys.client.shared.model.DataList; |
39 import de.intevation.flys.client.shared.model.DefaultData; | 34 import de.intevation.flys.client.shared.model.DefaultData; |
40 import de.intevation.flys.client.shared.model.DefaultDataItem; | 35 import de.intevation.flys.client.shared.model.DefaultDataItem; |
41 import de.intevation.flys.client.shared.model.MapInfo; | 36 import de.intevation.flys.client.shared.model.MapInfo; |
42 | 37 |
43 import de.intevation.flys.client.client.Config; | 38 import java.util.LinkedHashMap; |
44 import de.intevation.flys.client.client.ui.map.FloodMap; | 39 import java.util.List; |
45 import de.intevation.flys.client.client.ui.map.MapPanel; | 40 |
46 import de.intevation.flys.client.client.services.MapInfoService; | 41 import org.gwtopenmaps.openlayers.client.Map; |
47 import de.intevation.flys.client.client.services.MapInfoServiceAsync; | 42 import org.gwtopenmaps.openlayers.client.feature.VectorFeature; |
43 import org.gwtopenmaps.openlayers.client.format.GeoJSON; | |
44 import org.gwtopenmaps.openlayers.client.layer.WMS; | |
45 import org.gwtopenmaps.openlayers.client.layer.WMSOptions; | |
46 import org.gwtopenmaps.openlayers.client.layer.WMSParams; | |
48 | 47 |
49 | 48 |
50 public class DigitizePanel | 49 public class DigitizePanel |
51 extends SelectProvider | 50 extends SelectProvider |
52 implements TabSelectedHandler, VisibilityChangedHandler { | 51 implements TabSelectedHandler, VisibilityChangedHandler { |
98 } | 97 } |
99 } | 98 } |
100 | 99 |
101 String river = getDataValue("state.winfo.river", "river"); | 100 String river = getDataValue("state.winfo.river", "river"); |
102 mapInfo.getMapInfo(locale, river, new AsyncCallback<MapInfo>() { | 101 mapInfo.getMapInfo(locale, river, new AsyncCallback<MapInfo>() { |
102 @Override | |
103 public void onFailure(Throwable caught) { | 103 public void onFailure(Throwable caught) { |
104 String msg = caught.getMessage(); | 104 String msg = caught.getMessage(); |
105 | 105 |
106 GWT.log("Error while fetching MapInfo: " + msg); | 106 GWT.log("Error while fetching MapInfo: " + msg); |
107 SC.warn(MSG.getString(msg)); | 107 SC.warn(MSG.getString(msg)); |
108 } | 108 } |
109 | 109 |
110 @Override | |
110 public void onSuccess(MapInfo info) { | 111 public void onSuccess(MapInfo info) { |
111 createMapWidget(info, geojson[0]); | 112 createMapWidget(info, geojson[0]); |
112 } | 113 } |
113 }); | 114 }); |
114 | 115 |
121 * | 122 * |
122 * @param data The {@link DataList} object. | 123 * @param data The {@link DataList} object. |
123 * | 124 * |
124 * @return a combobox. | 125 * @return a combobox. |
125 */ | 126 */ |
127 @Override | |
126 protected Canvas createWidget(DataList data) { | 128 protected Canvas createWidget(DataList data) { |
127 GWT.log("DigitizePanel - createWidget()"); | 129 GWT.log("DigitizePanel - createWidget()"); |
128 | 130 |
129 VLayout layout = new VLayout(); | 131 VLayout layout = new VLayout(); |
130 layout.setAlign(VerticalAlignment.TOP); | 132 layout.setAlign(VerticalAlignment.TOP); |
189 UploadItem uploadItem = new UploadItem(); | 191 UploadItem uploadItem = new UploadItem(); |
190 uploadItem.setShowTitle(false); | 192 uploadItem.setShowTitle(false); |
191 uploadForm.setFields(uploadItem); | 193 uploadForm.setFields(uploadItem); |
192 Button submit = new Button(MSG.upload_file()); | 194 Button submit = new Button(MSG.upload_file()); |
193 submit.addClickHandler(new ClickHandler() { | 195 submit.addClickHandler(new ClickHandler() { |
196 @Override | |
194 public void onClick(ClickEvent e) { | 197 public void onClick(ClickEvent e) { |
195 uploadForm.submitForm(); | 198 uploadForm.submitForm(); |
196 } | 199 } |
197 }); | 200 }); |
198 layout.addMember(frame); | 201 layout.addMember(frame); |
214 @Override | 217 @Override |
215 protected Data[] getData() { | 218 protected Data[] getData() { |
216 Data[] data = super.getData(); | 219 Data[] data = super.getData(); |
217 Data[] total = new Data[2]; | 220 Data[] total = new Data[2]; |
218 | 221 |
219 DataItem item = new DefaultDataItem( | 222 if (floodMap != null) { |
220 UESK_BARRIERS, UESK_BARRIERS, floodMap.getFeaturesAsGeoJSON()); | 223 DataItem item = new DefaultDataItem( |
221 | 224 UESK_BARRIERS, UESK_BARRIERS, floodMap.getFeaturesAsGeoJSON()); |
222 total[0] = data[0]; | 225 total[0] = data[0]; |
223 total[1] = new DefaultData( | 226 total[1] = new DefaultData( |
224 UESK_BARRIERS, null, null, new DataItem[] { item }); | 227 UESK_BARRIERS, null, null, new DataItem[] { item }); |
228 } | |
229 else { | |
230 // Happens when OpenLayers is missing | |
231 GWT.log("floodMap is null -> OpenLayers missing?"); | |
232 } | |
225 | 233 |
226 return total; | 234 return total; |
227 } | 235 } |
228 | 236 |
229 | 237 |
233 floodMap = mapPanel.getFloodMap(); | 241 floodMap = mapPanel.getFloodMap(); |
234 Map map = floodMap.getMap(); | 242 Map map = floodMap.getMap(); |
235 | 243 |
236 helperContainer.addMember(mapPanel); | 244 helperContainer.addMember(mapPanel); |
237 helperContainer.addResizedHandler(new ResizedHandler() { | 245 helperContainer.addResizedHandler(new ResizedHandler() { |
246 @Override | |
238 public void onResized(ResizedEvent e) { | 247 public void onResized(ResizedEvent e) { |
239 Integer height = helperContainer.getHeight(); | 248 Integer height = helperContainer.getHeight(); |
240 Integer width = helperContainer.getWidth(); | 249 Integer width = helperContainer.getWidth(); |
241 | 250 |
242 height = height * 99 / 100; | 251 height = height * 99 / 100; |
289 | 298 |
290 return wms; | 299 return wms; |
291 } | 300 } |
292 | 301 |
293 | 302 |
303 @Override | |
294 public void onTabSelected(TabSelectedEvent tse) { | 304 public void onTabSelected(TabSelectedEvent tse) { |
295 if (tse.getTabNum () != 0) { | 305 if (tse.getTabNum () != 0) { |
296 floodMap.hideBarrierLayer(); | 306 floodMap.hideBarrierLayer(); |
297 } | 307 } |
298 else { | 308 else { |
299 floodMap.showBarrierLayer(); | 309 floodMap.showBarrierLayer(); |
300 } | 310 } |
301 } | 311 } |
302 | 312 |
313 @Override | |
303 public void onVisibilityChanged(VisibilityChangedEvent vce) { | 314 public void onVisibilityChanged(VisibilityChangedEvent vce) { |
304 if (!vce.getIsVisible()) { | 315 if (!vce.getIsVisible()) { |
305 floodMap.hideBarrierLayer(); | 316 floodMap.hideBarrierLayer(); |
306 mapPanel.getMapToolbar().activateDrawFeature(false); | 317 mapPanel.getMapToolbar().activateDrawFeature(false); |
307 } | 318 } |