From: Henri Sara Date: Wed, 8 Apr 2009 13:08:02 +0000 (+0000) Subject: Merged #2817 to 6.0: AbstractField.isValid() and AbstractField.validate() were incons... X-Git-Tag: 6.7.0.beta1~3019 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d8a2fcb4b179e7bd3bab4c9b968216e5acddaf2b;p=vaadin-framework.git Merged #2817 to 6.0: AbstractField.isValid() and AbstractField.validate() were inconsistent with each other for empty non-required fields; ValidationExample depended on validator side effects svn changeset:7369/svn branch:6.0 --- diff --git a/src/com/itmill/toolkit/data/Validator.java b/src/com/itmill/toolkit/data/Validator.java index 0e09e3de6b..d0094914ed 100644 --- a/src/com/itmill/toolkit/data/Validator.java +++ b/src/com/itmill/toolkit/data/Validator.java @@ -17,6 +17,9 @@ import com.itmill.toolkit.terminal.PaintTarget; * {@link Validator.InvalidValueException} if the given value is not valid by * its standards. * + * Validators should not have side effects on other objects as they can be + * called from Paintable.paint(). + * * @author IT Mill Ltd. * @version * @VERSION@ diff --git a/src/com/itmill/toolkit/demo/sampler/features/commons/ValidationExample.java b/src/com/itmill/toolkit/demo/sampler/features/commons/ValidationExample.java index 75bacd5b10..19444045a9 100644 --- a/src/com/itmill/toolkit/demo/sampler/features/commons/ValidationExample.java +++ b/src/com/itmill/toolkit/demo/sampler/features/commons/ValidationExample.java @@ -46,17 +46,15 @@ public class ValidationExample extends VerticalLayout { throw new Validator.InvalidValueException("Username " + value + " already in use"); } - usernames.add(value); } }); username.addListener(new ValueChangeListener() { public void valueChange(ValueChangeEvent event) { TextField tf = (TextField) event.getProperty(); tf.validate(); - if (tf.isValid()) { - addComponent(new Label("Added " + tf.getValue() - + " to usernames")); - } + usernames.add(tf.getValue()); + addComponent(new Label("Added " + tf.getValue() + + " to usernames")); } }); diff --git a/src/com/itmill/toolkit/ui/AbstractField.java b/src/com/itmill/toolkit/ui/AbstractField.java index c998236f32..4d717826e6 100644 --- a/src/com/itmill/toolkit/ui/AbstractField.java +++ b/src/com/itmill/toolkit/ui/AbstractField.java @@ -639,12 +639,10 @@ public abstract class AbstractField extends AbstractComponent implements Field, */ public boolean isValid() { - if (isRequired()) { - if (isEmpty()) { + if (isEmpty()) { + if (isRequired()) { return false; - } - } else { - if (isEmpty()) { + } else { return true; } } @@ -675,9 +673,11 @@ public abstract class AbstractField extends AbstractComponent implements Field, */ public void validate() throws Validator.InvalidValueException { - if (isRequired()) { - if (isEmpty()) { + if (isEmpty()) { + if (isRequired()) { throw new Validator.EmptyValueException(requiredError); + } else { + return; } }