From 8dd8e33b4ea143d015972790565e48565512ea3e Mon Sep 17 00:00:00 2001 From: Joonas Lehtinen Date: Fri, 24 Oct 2008 14:19:43 +0000 Subject: [PATCH] Fixes #1900 svn changeset:5720/svn branch:trunk --- src/com/itmill/toolkit/data/Validator.java | 3 ++- src/com/itmill/toolkit/terminal/gwt/client/ICaption.java | 3 ++- src/com/itmill/toolkit/ui/AbstractField.java | 8 +++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/com/itmill/toolkit/data/Validator.java b/src/com/itmill/toolkit/data/Validator.java index 3bbd75e3dc..0e09e3de6b 100644 --- a/src/com/itmill/toolkit/data/Validator.java +++ b/src/com/itmill/toolkit/data/Validator.java @@ -105,7 +105,8 @@ public interface Validator { * @return True iff the paint method does not paint anything visible. */ public boolean isInvisible() { - if (getMessage() != null) { + String msg = getMessage(); + if (msg != null && msg.length() > 0) { return false; } if (causes != null) { diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ICaption.java b/src/com/itmill/toolkit/terminal/gwt/client/ICaption.java index 513a585841..fb626b34aa 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ICaption.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ICaption.java @@ -137,7 +137,8 @@ public class ICaption extends HTML { } } - if (uidl.hasAttribute("error")) { + if (uidl.hasAttribute("error") + && !uidl.getBooleanAttribute("hideErrors")) { isEmpty = false; if (errorIndicatorElement == null) { errorIndicatorElement = DOM.createDiv(); diff --git a/src/com/itmill/toolkit/ui/AbstractField.java b/src/com/itmill/toolkit/ui/AbstractField.java index 66eef1d6df..2fa622c7d8 100644 --- a/src/com/itmill/toolkit/ui/AbstractField.java +++ b/src/com/itmill/toolkit/ui/AbstractField.java @@ -143,6 +143,12 @@ public abstract class AbstractField extends AbstractComponent implements Field, if (isRequired()) { target.addAttribute("required", true); } + + // Hide the error indicator if needed + if (isRequired() && isEmpty() && getComponentError() == null + && getErrorMessage() != null) { + target.addAttribute("hideErrors", true); + } } /* @@ -757,7 +763,7 @@ public abstract class AbstractField extends AbstractComponent implements Field, // required fields, as in those cases user is aware of the problem. // Furthermore, non-required empty fields are obviously correct. ErrorMessage validationError = null; - if (isValidationVisible() && !isEmpty()) { + if (isValidationVisible() && !(isEmpty() && !isRequired())) { try { validate(); -- 2.39.5