diff flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java @ 1490:15b4bc8eede0

#302 Improved input validation in WQ panels. flys-client/trunk@3576 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 03 Jan 2012 13:27:14 +0000
parents 00e429e6420c
children 07b9404d7170
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java	Tue Jan 03 09:47:36 2012 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java	Tue Jan 03 13:27:14 2012 +0000
@@ -729,9 +729,19 @@
             errors.add(MESSAGE.wrongFormat());
         }
 
-        double from = panel.getFrom();
-        double to   = panel.getTo();
-        double step = panel.getStep();
+        double from;
+        double to;
+        double step;
+
+        try {
+            from = panel.getFrom();
+            to   = panel.getTo();
+            step = panel.getStep();
+        }
+        catch (NullPointerException npe) {
+            errors.add(MESSAGE.missingInput());
+            return errors;
+        }
 
         if (from < min || from > max) {
             String tmp = MESSAGE.error_validate_lower_range();
@@ -769,6 +779,12 @@
         }
 
         double[] values = panel.getInputValues();
+
+        if (values == null || values.length == 0) {
+            errors.add(MESSAGE.atLeastOneValue());
+            return errors;
+        }
+
         double[] good   = new double[values.length];
         int      idx    = 0;
 
@@ -1412,7 +1428,7 @@
 
 
     protected void saveRangeWValue(DoubleRangePanel p, FormItem item) {
-        if (p.validateForm(item)) {
+        if (p.validateForm()) {
             setFromW(p.getFrom());
             setToW(p.getTo());
             setStepW(p.getStep());
@@ -1421,7 +1437,7 @@
 
 
     protected void saveRangeQValue(DoubleRangePanel p, FormItem item) {
-        if (p.validateForm(item)) {
+        if (p.validateForm()) {
             setFromQ(p.getFrom());
             setToQ(p.getTo());
             setStepQ(p.getStep());
@@ -1430,7 +1446,7 @@
 
 
     protected void saveRangeQFreeValue(DoubleRangePanel p, FormItem item) {
-        if (p.validateForm(item)) {
+        if (p.validateForm()) {
             setFromQFree(p.getFrom());
             setToQFree(p.getTo());
             setStepQFree(p.getStep());

http://dive4elements.wald.intevation.org