aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2009-01-13 07:42:22 +0000
committerArtur Signell <artur.signell@itmill.com>2009-01-13 07:42:22 +0000
commit3c87eb58afdfac2fa1602bc55b7a070f6a804e1c (patch)
tree94bac07d0579d50ca32e1d15d61f5451ac1addc9
parent359332dd30cd78a5c366e8d93b7c47089538cede (diff)
downloadvaadin-framework-3c87eb58afdfac2fa1602bc55b7a070f6a804e1c.tar.gz
vaadin-framework-3c87eb58afdfac2fa1602bc55b7a070f6a804e1c.zip
Test case and fix for #2442 - RequiredError not displayed in the tooltip
svn changeset:6509/svn branch:trunk
-rw-r--r--src/com/itmill/toolkit/tests/validation/RequiredErrorMessage.java47
-rw-r--r--src/com/itmill/toolkit/ui/AbstractField.java13
2 files changed, 54 insertions, 6 deletions
diff --git a/src/com/itmill/toolkit/tests/validation/RequiredErrorMessage.java b/src/com/itmill/toolkit/tests/validation/RequiredErrorMessage.java
new file mode 100644
index 0000000000..f72ca0aeb5
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/validation/RequiredErrorMessage.java
@@ -0,0 +1,47 @@
+package com.itmill.toolkit.tests.validation;
+
+import com.itmill.toolkit.tests.components.TestBase;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.TextField;
+import com.itmill.toolkit.ui.VerticalLayout;
+import com.itmill.toolkit.ui.Window;
+
+public class RequiredErrorMessage extends TestBase {
+
+ @Override
+ protected String getDescription() {
+ return "This test verifies that the tooltip for a required field contains the requiredError message if such has been given. The tooltip for the first field should contain a message, the second field has no required error message set";
+ }
+
+ @Override
+ public void setup() {
+
+ final Window main = new Window(getClass().getName());
+ setMainWindow(main);
+
+ final Form form = new Form(new VerticalLayout());
+ final TextField requiredFieldWithError = new TextField(
+ "Field with requiredError");
+ requiredFieldWithError.setRequired(true);
+ requiredFieldWithError
+ .setRequiredError("Error message for required field");
+ form.addField("field1", requiredFieldWithError);
+
+ final TextField requiredFieldNoError = new TextField(
+ "Field without requiredError");
+ requiredFieldNoError.setRequired(true);
+ form.addField("field2", requiredFieldNoError);
+
+ final TextField requiredFieldDescriptionAndError = new TextField(
+ "Field with requiredError and description");
+ requiredFieldDescriptionAndError.setRequired(true);
+ requiredFieldDescriptionAndError
+ .setRequiredError("Error message for required field");
+ requiredFieldDescriptionAndError
+ .setDescription("Description message for the field");
+ form.addField("field3", requiredFieldDescriptionAndError);
+
+ main.addComponent(form);
+ }
+
+}
diff --git a/src/com/itmill/toolkit/ui/AbstractField.java b/src/com/itmill/toolkit/ui/AbstractField.java
index c1e266a7b8..d245a1329c 100644
--- a/src/com/itmill/toolkit/ui/AbstractField.java
+++ b/src/com/itmill/toolkit/ui/AbstractField.java
@@ -763,13 +763,14 @@ public abstract class AbstractField extends AbstractComponent implements Field,
@Override
public ErrorMessage getErrorMessage() {
- // Check validation errors only if automatic validation is enabled.
- // As an exception, no validation messages are shown for empty
- // required fields, as in those cases user is aware of the problem.
- // Furthermore, non-required empty fields are obviously correct.
+ /*
+ * Check validation errors only if automatic validation is enabled.
+ * Empty, required fields will generate a validation error containing
+ * the requiredError string. For these fields the exclamation mark will
+ * be hidden but the error must still be sent to the client.
+ */
ErrorMessage validationError = null;
- if (isValidationVisible() && !(isEmpty() && isRequired())) {
-
+ if (isValidationVisible()) {
try {
validate();
} catch (Validator.InvalidValueException e) {