diff 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
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/DigitizePanel.java	Mon Oct 08 11:01:20 2012 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DigitizePanel.java	Mon Oct 08 12:10:50 2012 +0200
@@ -1,38 +1,33 @@
 package de.intevation.flys.client.client.ui;
 
-import java.util.List;
-import java.util.LinkedHashMap;
-
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.rpc.AsyncCallback;
 
+import com.smartgwt.client.types.Encoding;
+import com.smartgwt.client.types.VerticalAlignment;
 import com.smartgwt.client.util.SC;
-import com.smartgwt.client.widgets.Canvas;
 import com.smartgwt.client.widgets.Button;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.HTMLPane;
 import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.events.ResizedEvent;
-import com.smartgwt.client.widgets.events.ResizedHandler;
 import com.smartgwt.client.widgets.events.ClickEvent;
 import com.smartgwt.client.widgets.events.ClickHandler;
-import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
-import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
+import com.smartgwt.client.widgets.events.ResizedEvent;
+import com.smartgwt.client.widgets.events.ResizedHandler;
+import com.smartgwt.client.widgets.events.VisibilityChangedEvent;
 import com.smartgwt.client.widgets.events.VisibilityChangedHandler;
-import com.smartgwt.client.widgets.events.VisibilityChangedEvent;
-import com.smartgwt.client.widgets.layout.VLayout;
 import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.form.fields.UploadItem;
 import com.smartgwt.client.widgets.form.fields.SelectItem;
-import com.smartgwt.client.types.VerticalAlignment;
-import com.smartgwt.client.widgets.HTMLPane;
-import com.smartgwt.client.types.Encoding;
+import com.smartgwt.client.widgets.form.fields.UploadItem;
+import com.smartgwt.client.widgets.layout.VLayout;
+import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
+import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
 
-import org.gwtopenmaps.openlayers.client.Map;
-import org.gwtopenmaps.openlayers.client.feature.VectorFeature;
-import org.gwtopenmaps.openlayers.client.format.GeoJSON;
-import org.gwtopenmaps.openlayers.client.layer.WMS;
-import org.gwtopenmaps.openlayers.client.layer.WMSParams;
-import org.gwtopenmaps.openlayers.client.layer.WMSOptions;
-
+import de.intevation.flys.client.client.Config;
+import de.intevation.flys.client.client.services.MapInfoService;
+import de.intevation.flys.client.client.services.MapInfoServiceAsync;
+import de.intevation.flys.client.client.ui.map.FloodMap;
+import de.intevation.flys.client.client.ui.map.MapPanel;
 import de.intevation.flys.client.shared.model.Data;
 import de.intevation.flys.client.shared.model.DataItem;
 import de.intevation.flys.client.shared.model.DataList;
@@ -40,11 +35,15 @@
 import de.intevation.flys.client.shared.model.DefaultDataItem;
 import de.intevation.flys.client.shared.model.MapInfo;
 
-import de.intevation.flys.client.client.Config;
-import de.intevation.flys.client.client.ui.map.FloodMap;
-import de.intevation.flys.client.client.ui.map.MapPanel;
-import de.intevation.flys.client.client.services.MapInfoService;
-import de.intevation.flys.client.client.services.MapInfoServiceAsync;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.gwtopenmaps.openlayers.client.Map;
+import org.gwtopenmaps.openlayers.client.feature.VectorFeature;
+import org.gwtopenmaps.openlayers.client.format.GeoJSON;
+import org.gwtopenmaps.openlayers.client.layer.WMS;
+import org.gwtopenmaps.openlayers.client.layer.WMSOptions;
+import org.gwtopenmaps.openlayers.client.layer.WMSParams;
 
 
 public class DigitizePanel
@@ -100,6 +99,7 @@
 
         String river = getDataValue("state.winfo.river", "river");
         mapInfo.getMapInfo(locale, river, new AsyncCallback<MapInfo>() {
+            @Override
             public void onFailure(Throwable caught) {
                 String msg = caught.getMessage();
 
@@ -107,6 +107,7 @@
                 SC.warn(MSG.getString(msg));
             }
 
+            @Override
             public void onSuccess(MapInfo info) {
                 createMapWidget(info, geojson[0]);
             }
@@ -123,6 +124,7 @@
      *
      * @return a combobox.
      */
+    @Override
     protected Canvas createWidget(DataList data) {
         GWT.log("DigitizePanel - createWidget()");
 
@@ -191,6 +193,7 @@
             uploadForm.setFields(uploadItem);
             Button submit = new Button(MSG.upload_file());
             submit.addClickHandler(new ClickHandler() {
+                @Override
                 public void onClick(ClickEvent e) {
                     uploadForm.submitForm();
                 }
@@ -216,12 +219,17 @@
         Data[] data  = super.getData();
         Data[] total = new Data[2];
 
-        DataItem item = new DefaultDataItem(
-            UESK_BARRIERS, UESK_BARRIERS, floodMap.getFeaturesAsGeoJSON());
-
-        total[0] = data[0];
-        total[1] = new DefaultData(
-            UESK_BARRIERS, null, null, new DataItem[] { item });
+        if (floodMap != null) {
+            DataItem item = new DefaultDataItem(
+                UESK_BARRIERS, UESK_BARRIERS, floodMap.getFeaturesAsGeoJSON());
+            total[0] = data[0];
+            total[1] = new DefaultData(
+                UESK_BARRIERS, null, null, new DataItem[] { item });
+        }
+        else {
+            // Happens when OpenLayers is missing
+            GWT.log("floodMap is null -> OpenLayers missing?");
+        }
 
         return total;
     }
@@ -235,6 +243,7 @@
 
         helperContainer.addMember(mapPanel);
         helperContainer.addResizedHandler(new ResizedHandler() {
+            @Override
             public void onResized(ResizedEvent e) {
                 Integer height = helperContainer.getHeight();
                 Integer width  = helperContainer.getWidth();
@@ -291,6 +300,7 @@
     }
 
 
+    @Override
     public void onTabSelected(TabSelectedEvent tse) {
         if (tse.getTabNum () != 0) {
             floodMap.hideBarrierLayer();
@@ -300,6 +310,7 @@
         }
     }
 
+    @Override
     public void onVisibilityChanged(VisibilityChangedEvent vce) {
         if (!vce.getIsVisible()) {
             floodMap.hideBarrierLayer();

http://dive4elements.wald.intevation.org