diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java @ 9107:41f4bc83aa7a

vegzones improved
author gernotbelger
date Tue, 29 May 2018 15:19:03 +0200
parents 611a523fc42f
children f5b55b383ef9
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java	Tue May 29 11:38:13 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java	Tue May 29 15:19:03 2018 +0200
@@ -11,30 +11,34 @@
 import org.dive4elements.river.client.client.ui.PanelHelper;
 import org.dive4elements.river.client.shared.model.DataList;
 
-import com.google.gwt.core.client.GWT;
-import com.smartgwt.client.types.ListGridFieldType;
+import com.smartgwt.client.util.SC;
 import com.smartgwt.client.widgets.Button;
-import com.smartgwt.client.widgets.Canvas;
 import com.smartgwt.client.widgets.events.ClickEvent;
 import com.smartgwt.client.widgets.events.ClickHandler;
 import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;
-import com.smartgwt.client.widgets.form.validator.IsStringValidator;
-import com.smartgwt.client.widgets.grid.ListGridField;
+import com.smartgwt.client.widgets.form.fields.TextItem;
+import com.smartgwt.client.widgets.grid.ListGrid;
 import com.smartgwt.client.widgets.grid.ListGridRecord;
-import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
-import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
 import com.smartgwt.client.widgets.layout.HLayout;
+import com.smartgwt.client.widgets.layout.Layout;
 
 public class VegetationzonesTableEditPanel extends AbstractVegZonesTablePanel {
     private static final long serialVersionUID = 1L;
 
+    private TextItem vegzone;
+
+    private TextItem start;
+
+    private TextItem end;
+
     @Override
-    public Canvas createWidget(final DataList data) {
-        super.createTable(data, 450);
-        this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200, new IsStringValidator());
-        this.start = PanelHelper.createItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), 40, new IsIntegerValidator());
-        this.end = PanelHelper.createItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), 40, new IsIntegerValidator());
+    public void createWidget(final Layout root, final DataList data) {
+
+        final ListGrid elements = super.createTable(root, data, 450, true);
+
+        this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200);
+        this.start = PanelHelper.createIntegerItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), 40);
+        this.end = PanelHelper.createIntegerItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), 40);
         final HLayout fields = new HLayout();
         final HLayout fields2 = new HLayout();
 
@@ -53,16 +57,9 @@
                 final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString();
                 final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString();
                 final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString();
-                if (v1 == null || v2 == null || v3 == null) {
-                    return;
-                }
-                try {
-                    final double test = Double.valueOf(v1);
-                    final double test2 = Double.valueOf(v2);
-                    // TODO: MAKE MESSAGE, Apply Format (1.000,00)
-                }
-                catch (final Exception e) {
-                    e.printStackTrace();
+                final String message = validate(v1, v2, v3);
+                if (message != null) {
+                    SC.warn(message);
                     return;
                 }
 
@@ -70,46 +67,42 @@
                 r.setAttribute("vegzone", v3);
                 r.setAttribute("from", v1);
                 r.setAttribute("to", v2);
-                VegetationzonesTableEditPanel.this.elements.addData(r);
+                elements.addData(r);
             }
         });
 
-        final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") {
-            {
-                setType(ListGridFieldType.ICON);
-                setIcon(GWT.getHostPageBaseURL() + VegetationzonesTableEditPanel.this.MSG.removeFeature());
-                setCanEdit(false);
-                setCanFilter(false);
-                setCanSort(false);
-                setCanGroupBy(false);
-                setCanFreeze(false);
-                setWidth(25);
-            }
-        };
-
-        this.elements.addRecordClickHandler(new RecordClickHandler() {
-            @Override
-            public void onRecordClick(final RecordClickEvent event) {
-                // Just handle remove-clicks
-                if (!event.getField().getName().equals(removeField.getName())) {
-                    return;
-                }
-                event.getViewer().removeData(event.getRecord());
-            }
-        });
-
-        this.elements.setFields(super.vegzoneField, super.fromField, super.toField, removeField);
-
         fields.addMember(form1);
         fields2.addMember(form2);
 
-        this.root.addMember(fields);
-        this.root.addMember(fields2);
-        this.root.addMember(PanelHelper.getSpacer(10));
-        this.root.addMember(add);
-        this.root.addMember(PanelHelper.getSpacer(20));
-
-        return this.root;
+        root.addMember(fields);
+        root.addMember(fields2);
+        root.addMember(PanelHelper.getSpacer(10));
+        root.addMember(add);
+        root.addMember(PanelHelper.getSpacer(20));
     }
 
-}
+    protected String validate(final String v1, final String v2, final String v3) {
+
+        if (v1 == null || v2 == null || v3 == null || v1.trim().isEmpty() || v2.trim().isEmpty() || v3.trim().isEmpty())
+            return this.MSG.uinfo_vegetation_zones_validation_empty();
+
+        try {
+            final Integer from = Integer.valueOf(v1);
+            final Integer to = Integer.valueOf(v2);
+
+            if (from < 0 || from > 365)
+                return this.MSG.uinfo_vegetation_zones_validation_range();
+
+            if (to < 0 || to > 365)
+                return this.MSG.uinfo_vegetation_zones_validation_range();
+
+            if (from > to)
+                return this.MSG.uinfo_vegetation_zones_validation_from_greater_to();
+
+            return null;
+        }
+        catch (final NumberFormatException e) {
+            return this.MSG.uinfo_vegetation_zones_invalid_integer();
+        }
+    }
+}
\ No newline at end of file

http://dive4elements.wald.intevation.org