aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoonas Lehtinen <joonas.lehtinen@itmill.com>2008-07-03 13:56:00 +0000
committerJoonas Lehtinen <joonas.lehtinen@itmill.com>2008-07-03 13:56:00 +0000
commitf091fa9e0c55be3e92b5920ba3d6b7135124435b (patch)
tree53d66b073991d6b0d59919cbfc5aa9ee8c20c99d /src
parent46e430be970200c6ed6ca267a8d10d5b9a733fac (diff)
downloadvaadin-framework-f091fa9e0c55be3e92b5920ba3d6b7135124435b.tar.gz
vaadin-framework-f091fa9e0c55be3e92b5920ba3d6b7135124435b.zip
Corrections for #1867
svn changeset:5033/svn branch:trunk
Diffstat (limited to 'src')
-rw-r--r--src/com/itmill/toolkit/ui/AbstractComponent.java9
-rw-r--r--src/com/itmill/toolkit/ui/Form.java43
2 files changed, 17 insertions, 35 deletions
diff --git a/src/com/itmill/toolkit/ui/AbstractComponent.java b/src/com/itmill/toolkit/ui/AbstractComponent.java
index a4e662aa64..f4db9214ed 100644
--- a/src/com/itmill/toolkit/ui/AbstractComponent.java
+++ b/src/com/itmill/toolkit/ui/AbstractComponent.java
@@ -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);
diff --git a/src/com/itmill/toolkit/ui/Form.java b/src/com/itmill/toolkit/ui/Form.java
index 266aa780d4..a4d81a1b09 100644
--- a/src/com/itmill/toolkit/ui/Form.java
+++ b/src/com/itmill/toolkit/ui/Form.java
@@ -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();