aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/itmill/toolkit/data/Validator.java3
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ICaption.java3
-rw-r--r--src/com/itmill/toolkit/ui/AbstractField.java8
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();