]> source.dussan.org Git - vaadin-framework.git/commitdiff
Corrections for #1867
authorJoonas Lehtinen <joonas.lehtinen@itmill.com>
Thu, 3 Jul 2008 13:56:00 +0000 (13:56 +0000)
committerJoonas Lehtinen <joonas.lehtinen@itmill.com>
Thu, 3 Jul 2008 13:56:00 +0000 (13:56 +0000)
svn changeset:5033/svn branch:trunk

src/com/itmill/toolkit/ui/AbstractComponent.java
src/com/itmill/toolkit/ui/Form.java

index a4e662aa6494d70ee4c8dedfd5dd4aa39894ddc3..f4db9214ed79a18fd877058cbc81d502215c9bc2 100644 (file)
@@ -13,10 +13,8 @@ import java.util.Locale;
 import java.util.Map;
 
 import com.itmill.toolkit.Application;
-import com.itmill.toolkit.data.Validator.EmptyValueException;
 import com.itmill.toolkit.event.EventRouter;
 import com.itmill.toolkit.event.MethodEventSource;
-import com.itmill.toolkit.terminal.CompositeErrorMessage;
 import com.itmill.toolkit.terminal.ErrorMessage;
 import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
@@ -626,12 +624,7 @@ public abstract class AbstractComponent implements Component, MethodEventSource
 
                 final ErrorMessage error = getErrorMessage();
                 if (error != null) {
-                    // Do not display empty value errors for
-                    // empty required fields.
-                    if (!(error instanceof EmptyValueException ||
-                          (error instanceof CompositeErrorMessage &&
-                           ((CompositeErrorMessage)error).hasErrorMessageClass(EmptyValueException.class))))
-                        error.paint(target);
+                    error.paint(target);
                 }
             } else {
                 target.addAttribute("invisible", true);
index 266aa780d4d1e7c7cb24db9f81e25a1b6eea42db..a4d81a1b09fe9b8295237a152d84fc88e7c99e76 100644 (file)
@@ -15,7 +15,6 @@ import com.itmill.toolkit.data.Item;
 import com.itmill.toolkit.data.Property;
 import com.itmill.toolkit.data.Validatable;
 import com.itmill.toolkit.data.Validator;
-import com.itmill.toolkit.data.Validator.EmptyValueException;
 import com.itmill.toolkit.data.Validator.InvalidValueException;
 import com.itmill.toolkit.data.util.BeanItem;
 import com.itmill.toolkit.terminal.CompositeErrorMessage;
@@ -171,17 +170,6 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
         if (formFooter != null) {
             formFooter.paint(target);
         }
-        
-        // AbstractComponent.paint() does not paint EmptyValueExceptions and
-        // filters them out, but Form wants to paint them, so we have to
-        // see if the error was skipped.
-        // Efficiency note: also AbstractComponent.paint() calls
-        // getErrorMessage(), which is a bit heavy call.
-        final ErrorMessage error = getErrorMessage();
-        if (error instanceof EmptyValueException ||
-            (error instanceof CompositeErrorMessage &&
-             ((CompositeErrorMessage)error).hasErrorMessageClass(EmptyValueException.class)))
-            error.paint(target);
     }
 
     /**
@@ -195,27 +183,28 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
      * validation fails also on empty errors.
      */
     public ErrorMessage getErrorMessage() {
+
         // Reimplement the checking of validation error by using
         // getErrorMessage() recursively instead of validate().
         ErrorMessage validationError = null;
-        for (final Iterator i = propertyIds.iterator(); i.hasNext();) {
-            try {
-                AbstractComponent field = (AbstractComponent) fields.get(i
-                        .next());
-                validationError = field.getErrorMessage();
-                if (validationError != null) {
-                    // Skip empty errors
-                    if (validationError.toString().isEmpty())
-                        continue;
-                    break;
+        if (isValidationVisible()) {
+            for (final Iterator i = propertyIds.iterator(); i.hasNext();) {
+                try {
+                    AbstractComponent field = (AbstractComponent) fields.get(i
+                            .next());
+                    validationError = field.getErrorMessage();
+                    if (validationError != null) {
+                        // Skip empty errors
+                        if ("".equals(validationError.toString())) {
+                            continue;
+                        }
+                        break;
+                    }
+                } catch (ClassCastException ignored) {
                 }
-            } catch (ClassCastException ignored) {
             }
         }
-        
-        // The rest is reimplementation of the latter part of
-        // AbstractField.getErrorMessage()
-        
+
         // Check if there are any systems errors
         final ErrorMessage superError = super.getErrorMessage();