diff flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java @ 1507:c21d14e48040

Improved validation and property handling. flys-client/trunk@3645 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 11 Jan 2012 10:21:22 +0000
parents 339f8aa641b5
children 8ac57bbc270c
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java	Mon Jan 09 18:06:01 2012 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java	Wed Jan 11 10:21:22 2012 +0000
@@ -25,6 +25,8 @@
 import com.smartgwt.client.widgets.events.ClickHandler;
 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
+import com.smartgwt.client.widgets.form.fields.events.BlurHandler;
+import com.smartgwt.client.widgets.form.fields.events.BlurEvent;
 
 import com.smartgwt.client.types.Alignment;
 
@@ -192,7 +194,6 @@
             IntegerProperty fontsize =
                 (IntegerProperty)pg.getPropertyByName("font-size");
             FormItem fs = createIntegerProperty(fontsize);
-            fs.addChangedHandler(new IntegerValidator());
             fs.setValue(
                 ((IntegerProperty)
                     origPg.getPropertyByName("font-size")).getValue());
@@ -200,38 +201,25 @@
             DoubleProperty upper =
                 (DoubleProperty)pg.getPropertyByName("upper");
             final FormItem range1 = createDoubleProperty(upper);
-            range1.addChangedHandler(new DoubleValidator());
             range1.setWidth(70);
-            String r1Value = 
-                ((DoubleProperty)origPg.getPropertyByName("upper")).getValue();
+            range1.setValue(
+                ((DoubleProperty)
+                    origPg.getPropertyByName("upper")).toUIString());
+
             DoubleProperty lower =
                 (DoubleProperty)pg.getPropertyByName("lower");
             final FormItem range2 = createDoubleProperty(lower);
-            range2.addChangedHandler(new DoubleValidator());
             range2.setWidth(70);
-            String r2Value =
-                ((DoubleProperty)origPg.getPropertyByName("lower")).getValue();
-            if(locale.equals("de")) {
-                range1.setValue(r1Value.replaceAll("\\.", ","));
-                range2.setValue(r2Value.replaceAll("\\.", ","));
-            }
-            else {
-                range1.setValue(r1Value);
-                range2.setValue(r2Value);
-            }
+            range2.setValue(
+                ((DoubleProperty)
+                    origPg.getPropertyByName("lower")).toUIString());
 
             BooleanProperty fixation =
                 (BooleanProperty)pg.getPropertyByName("fixation");
             FormItem fix = createBooleanProperty(fixation);
-            String fixValue =
-                ((BooleanProperty)
-                    origPg.getPropertyByName("fixation")).getValue();
-            if(fixValue.equals("true")) {
-                fix.setValue(true);
-            }
-            else {
-                fix.setValue(false);
-            }
+            fix.setValue(((BooleanProperty)
+                origPg.getPropertyByName("fixation")).getValue().booleanValue());
+
             fix.addChangedHandler(new ChangedHandler() {
                 public void onChanged(ChangedEvent e) {
                     if ((Boolean)e.getValue()) {
@@ -244,7 +232,7 @@
                     }
                 }
             });
-            if (fixation.getValue().equals("true")) {
+            if (fix.getValue().toString().equals("true")) {
                 range1.enable();
                 range2.enable();
             }
@@ -285,31 +273,14 @@
         FormItem item = new FormItem();
         if (setting instanceof BooleanProperty) {
             item = createBooleanProperty((BooleanProperty)setting);
-            String iValue = ((BooleanProperty)orig).getValue();
-            if(iValue.equals("true")) {
-                item.setValue(true);
-            }
-            else {
-                item.setValue(false);
-            }
+            item.setValue(((BooleanProperty)orig).getValue().toString());
         }
         else if (setting instanceof DoubleProperty) {
             item = createDoubleProperty((DoubleProperty)setting);
-            DoubleValidator validator = new DoubleValidator();
-            item.addChangedHandler(validator);
-            Config config = Config.getInstance();
-            String locale = config.getLocale();
-            String iValue = ((DoubleProperty)orig).getValue();
-            if(locale.equals("de")) {
-                item.setValue(iValue.replaceAll("\\.", ","));
-            }
-            else {
-                item.setValue(iValue);
-            }
+            item.setValue(((DoubleProperty)orig).toUIString());
         }
         else if (setting instanceof IntegerProperty) {
             item = createIntegerProperty((IntegerProperty)setting);
-            item.addChangedHandler(new IntegerValidator());
             item.setValue(((IntegerProperty)orig).getValue());
         }
         else if (setting instanceof StringProperty) {
@@ -332,14 +303,14 @@
         TextItem item = new TextItem();
         item.setTitle(MSG.getString(name));
         item.setTitleAlign(Alignment.LEFT);
-        item.addChangedHandler(new ChangedHandler() {
-            public void onChanged(ChangedEvent e) {
+        item.addBlurHandler(new BlurHandler() {
+            public void onBlur(BlurEvent e) {
                 String val;
-                if (e.getValue() == null) {
+                if (e.getItem().getValue() == null) {
                     val = "";
                 }
                 else {
-                    val = e.getValue().toString();
+                    val = e.getItem().getValue().toString();
                 }
                 sp.setValue(val);
             }
@@ -361,14 +332,14 @@
         item.setLabelAsTitle(true);
         item.setTitleStyle("color:#000;");
         item.setTitleAlign(Alignment.LEFT);
-        item.addChangedHandler(new ChangedHandler() {
-            public void onChanged(ChangedEvent e) {
+        item.addBlurHandler(new BlurHandler() {
+            public void onBlur(BlurEvent e) {
                 String val;
-                if (e.getValue() == null) {
+                if (e.getItem().getValue() == null) {
                     val = "";
                 }
                 else {
-                    val = e.getValue().toString();
+                    val = e.getItem().getValue().toString();
                 }
                 bp.setValue(val);
             }
@@ -389,22 +360,17 @@
         TextItem item = new TextItem();
         item.setTitle(MSG.getString(name));
         item.setTitleAlign(Alignment.LEFT);
-        item.addChangedHandler(new ChangedHandler() {
-            public void onChanged(ChangedEvent e) {
-                String val;
-                if (e.getValue() == null) {
-                    val = "";
-                }
-                else {
-                    val = e.getValue().toString();
-                }
-                DoubleValidator validator = new DoubleValidator();
-
-                Map errors = e.getForm().getErrors();
-                String input = validator.toProtocolString(e.getItem(), errors);
-                if(input != null) {
-                    dp.setValue(input);
-                }
+        item.addBlurHandler(new BlurHandler() {
+            public void onBlur(BlurEvent e) {
+                 DoubleValidator validator = new DoubleValidator();
+                 Map errors = e.getForm().getErrors();
+                 if(validator.validate(e.getItem(), errors)) {
+                     dp.setValueFromUI(e.getItem().getValue().toString());
+                     e.getForm().setErrors(errors, true);
+                 }
+                 else {
+                     e.getForm().setErrors(errors, true);
+                 }
             }
         });
         return item;
@@ -423,16 +389,17 @@
         TextItem item = new TextItem();
         item.setTitle(MSG.getString(name));
         item.setTitleAlign(Alignment.LEFT);
-        item.addChangedHandler(new ChangedHandler() {
-            public void onChanged(ChangedEvent e) {
-                String val;
-                if (e.getValue() == null) {
-                    val = "";
+        item.addBlurHandler(new BlurHandler() {
+            public void onBlur(BlurEvent e) {
+                IntegerValidator validator = new IntegerValidator();
+                Map errors = e.getForm().getErrors();
+                if(validator.validate(e.getItem(), errors)) {
+                    ip.setValue(e.getItem().getValue().toString());
+                    e.getForm().setErrors(errors, true);
                 }
                 else {
-                    val = e.getValue().toString();
+                    e.getForm().setErrors(errors, true);
                 }
-                ip.setValue(val);
             }
         });
         return item;

http://dive4elements.wald.intevation.org