# HG changeset patch # User Raimund Renkert # Date 1326130196 0 # Node ID 02a9104c045168679d7fca4ec8a93741b23a7c74 # Parent 3304608baf3583a12a9c5593e00e0aaa1777e3be Implemented the validators more object oriented. flys-client/trunk@3634 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 3304608baf35 -r 02a9104c0451 flys-client/ChangeLog --- a/flys-client/ChangeLog Mon Jan 09 17:07:17 2012 +0000 +++ b/flys-client/ChangeLog Mon Jan 09 17:29:56 2012 +0000 @@ -1,3 +1,17 @@ +2012-01-09 Raimund Renkert + + Implemented the validators more object oriented. + + * src/main/java/de/intevation/flys/client/client/utils/Validator.java: + Removed the concrete validate methods. + + * src/main/java/de/intevation/flys/client/client/utils/DoubleValidator.java, + src/main/java/de/intevation/flys/client/client/utils/IntegerValidator.java: + New. Implemented concrete validators. + + * src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java: + Use the new validators to validate the input values. + 2012-01-09 Raimund Renkert Issue 433. Allways load original chart settings when opening the dialog. diff -r 3304608baf35 -r 02a9104c0451 flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java Mon Jan 09 17:07:17 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java Mon Jan 09 17:29:56 2012 +0000 @@ -1,7 +1,6 @@ package de.intevation.flys.client.client.ui.chart; import java.util.List; -import java.util.Map; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -40,7 +39,8 @@ import de.intevation.flys.client.shared.model.Settings; import de.intevation.flys.client.shared.model.OutputSettings; import de.intevation.flys.client.shared.model.Collection; -import de.intevation.flys.client.client.utils.Validator; +import de.intevation.flys.client.client.utils.IntegerValidator; +import de.intevation.flys.client.client.utils.DoubleValidator; import de.intevation.flys.client.client.services.CollectionAttributeService; import de.intevation.flys.client.client.services.CollectionAttributeServiceAsync; @@ -189,8 +189,7 @@ IntegerProperty fontsize = (IntegerProperty)pg.getPropertyByName("font-size"); FormItem fs = createIntegerProperty(fontsize); - fs.setAttribute("internalType", "integer"); - fs.addChangedHandler(new Validator()); + fs.addChangedHandler(new IntegerValidator()); fs.setValue( ((IntegerProperty) origPg.getPropertyByName("font-size")).getValue()); @@ -198,8 +197,7 @@ DoubleProperty upper = (DoubleProperty)pg.getPropertyByName("upper"); final FormItem range1 = createDoubleProperty(upper); - range1.setAttribute("internalType", "double"); - range1.addChangedHandler(new Validator()); + range1.addChangedHandler(new DoubleValidator()); range1.setWidth(70); range1.setValue( ((DoubleProperty)origPg.getPropertyByName("upper")).getValue()); @@ -207,8 +205,7 @@ DoubleProperty lower = (DoubleProperty)pg.getPropertyByName("lower"); final FormItem range2 = createDoubleProperty(lower); - range2.setAttribute("internalType", "double"); - range2.addChangedHandler(new Validator()); + range2.addChangedHandler(new DoubleValidator()); range2.setWidth(70); range2.setValue( ((DoubleProperty)origPg.getPropertyByName("lower")).getValue()); @@ -276,14 +273,12 @@ } else if (setting instanceof DoubleProperty) { item = createDoubleProperty((DoubleProperty)setting); - item.setAttribute("internalType", "double"); - item.addChangedHandler(new Validator()); + item.addChangedHandler(new DoubleValidator()); item.setValue(((DoubleProperty)orig).getValue()); } else if (setting instanceof IntegerProperty) { item = createIntegerProperty((IntegerProperty)setting); - item.setAttribute("internalType", "integer"); - item.addChangedHandler(new Validator()); + item.addChangedHandler(new IntegerValidator()); item.setValue(((IntegerProperty)orig).getValue()); } else if (setting instanceof StringProperty) { diff -r 3304608baf35 -r 02a9104c0451 flys-client/src/main/java/de/intevation/flys/client/client/utils/DoubleValidator.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/utils/DoubleValidator.java Mon Jan 09 17:29:56 2012 +0000 @@ -0,0 +1,44 @@ +package de.intevation.flys.client.client.utils; + +import java.util.Map; + +import com.google.gwt.i18n.client.NumberFormat; + +import com.smartgwt.client.widgets.form.fields.FormItem; + +/** + * @author Raimund Renkert + */ +public class DoubleValidator extends Validator { + + /** + * + */ + @Override + protected boolean validate(FormItem item, Map errors) { + boolean valid = true; + + String v = (String) item.getValue(); + + NumberFormat f = NumberFormat.getDecimalFormat(); + + try { + if (v == null) { + throw new NumberFormatException("empty"); + } + + double value = f.parse(v); + + errors.remove(item.getFieldName()); + } + catch (NumberFormatException nfe) { + errors.put(item.getFieldName(), MSG.wrongFormat()); + + item.focusInItem(); + + valid = false; + } + return valid; + } +} + diff -r 3304608baf35 -r 02a9104c0451 flys-client/src/main/java/de/intevation/flys/client/client/utils/IntegerValidator.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/utils/IntegerValidator.java Mon Jan 09 17:29:56 2012 +0000 @@ -0,0 +1,39 @@ +package de.intevation.flys.client.client.utils; + +import java.util.Map; + +import com.smartgwt.client.widgets.form.fields.FormItem; + +/** + * @author Raimund Renkert + */ +public class IntegerValidator extends Validator { + + /** + * + */ + @Override + protected boolean validate(FormItem item, Map errors) { + boolean valid = true; + + String v = (String) item.getValue(); + + try { + if (v == null) { + throw new NumberFormatException("empty"); + } + + int value = Integer.parseInt(v); + + errors.remove(item.getFieldName()); + } + catch (NumberFormatException nfe) { + errors.put(item.getFieldName(), MSG.wrongFormat()); + + item.focusInItem(); + + valid = false; + } + return valid; + } +} diff -r 3304608baf35 -r 02a9104c0451 flys-client/src/main/java/de/intevation/flys/client/client/utils/Validator.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/utils/Validator.java Mon Jan 09 17:07:17 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/utils/Validator.java Mon Jan 09 17:29:56 2012 +0000 @@ -1,11 +1,14 @@ package de.intevation.flys.client.client.utils; + +import java.util.Map; + import com.google.gwt.core.client.GWT; + import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.FormItem; -import com.google.gwt.i18n.client.NumberFormat; import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; -import java.util.Map; + import de.intevation.flys.client.client.FLYSConstants; /** @@ -33,77 +36,13 @@ Map errors = form.getErrors(); String type = item.getAttribute("internalType"); - if(type.equals("double")) { - validateFloat(item, errors); - form.setErrors(errors, true); - } - else if(type.equals("integer")) { - validateInteger(item, errors); - form.setErrors(errors, true); - } - else { - GWT.log("No Attribute 'internalType' set. Not using any validator."); - } + validate(item, errors); + form.setErrors(errors, true); } - /** - * - */ - protected boolean validateInteger(FormItem item, Map errors) { - boolean valid = true; - - String v = (String) item.getValue(); - - NumberFormat f = NumberFormat.getDecimalFormat(); - - try { - if (v == null) { - throw new NumberFormatException("empty"); - } - - int value = Integer.parseInt(v); - - errors.remove(item.getFieldName()); - } - catch (NumberFormatException nfe) { - errors.put(item.getFieldName(), MSG.wrongFormat()); - - item.focusInItem(); - - valid = false; - } - return valid; - } - - - /** - * - */ - protected boolean validateFloat(FormItem item, Map errors) { - boolean valid = true; - - String v = (String) item.getValue(); - - NumberFormat f = NumberFormat.getDecimalFormat(); - - try { - if (v == null) { - throw new NumberFormatException("empty"); - } - - double value = f.parse(v); - - errors.remove(item.getFieldName()); - } - catch (NumberFormatException nfe) { - errors.put(item.getFieldName(), MSG.wrongFormat()); - - item.focusInItem(); - - valid = false; - } - return valid; + protected boolean validate(FormItem item, Map errors) { + return true; } }