diff flys-client/src/main/java/de/intevation/flys/client/client/ui/IntegerRangePanel.java @ 1524:487c3ff7e838

Improved the code of IntegerRangePanel: it now returns the inserted values as IntegerRangeData object. flys-client/trunk@3709 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 18 Jan 2012 15:04:30 +0000
parents 07b532f9e057
children ae25566ce6f6
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/IntegerRangePanel.java	Wed Jan 18 09:19:36 2012 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/IntegerRangePanel.java	Wed Jan 18 15:04:30 2012 +0000
@@ -5,7 +5,9 @@
 import com.smartgwt.client.widgets.form.validator.IntegerRangeValidator;
 import com.smartgwt.client.widgets.form.validator.Validator;
 
+import de.intevation.flys.client.shared.model.Data;
 import de.intevation.flys.client.shared.model.DataList;
+import de.intevation.flys.client.shared.model.IntegerRangeData;
 
 
 public class IntegerRangePanel extends RangePanel {
@@ -15,6 +17,15 @@
 
 
     @Override
+    protected Data[] getData() {
+        Integer lo = getLowerAsInt();
+        Integer up = getUpperAsInt();
+
+        return new Data[] { new IntegerRangeData(getDataName(), null, lo, up) };
+    }
+
+
+    @Override
     protected FormItem newFormItem(String name) {
         IntegerItem item = new IntegerItem(name, "");
         item.setShowTitle(false);
@@ -25,6 +36,9 @@
 
     @Override
     protected Validator[] createLowerValidators(DataList dataList) {
+        setMaxLower(dataList);
+        setMaxUpper(dataList);
+
         Validator validator = newRangeValidator();
 
         if (validator != null) {
@@ -37,6 +51,9 @@
 
     @Override
     protected Validator[] createUpperValidators(DataList dataList) {
+        setMaxLower(dataList);
+        setMaxUpper(dataList);
+
         Validator validator = newRangeValidator();
 
         if (validator != null) {
@@ -47,6 +64,38 @@
     }
 
 
+    public Integer getLowerAsInt() {
+        String raw = getLower();
+
+        if (raw != null && raw.length() > 0) {
+            try {
+                return Integer.valueOf(raw);
+            }
+            catch (NumberFormatException nfe) {
+                // do nothing
+            }
+        }
+
+        return null;
+    }
+
+
+    public Integer getUpperAsInt() {
+        String raw = getUpper();
+
+        if (raw != null && raw.length() > 0) {
+            try {
+                return Integer.valueOf(raw);
+            }
+            catch (NumberFormatException nfe) {
+                // do nothing
+            }
+        }
+
+        return null;
+    }
+
+
     protected Validator newRangeValidator() {
         Integer maxLower = getMaxLower();
         Integer maxUpper = getMaxUpper();
@@ -68,6 +117,12 @@
     }
 
 
+    protected void setMaxLower(DataList dataList) {
+        IntegerRangeData range = (IntegerRangeData) dataList.get(0);
+        setMaxLower(range.getLower());
+    }
+
+
     public void setMaxLower(Integer maxLower) {
         this.maxLower = maxLower;
     }
@@ -78,6 +133,12 @@
     }
 
 
+    protected void setMaxUpper(DataList dataList) {
+        IntegerRangeData range = (IntegerRangeData) dataList.get(0);
+        setMaxUpper(range.getUpper());
+    }
+
+
     public void setMaxUpper(Integer maxUpper) {
         this.maxUpper = maxUpper;
     }

http://dive4elements.wald.intevation.org