From: Artur Signell Date: Tue, 13 Jan 2009 07:42:22 +0000 (+0000) Subject: Test case and fix for #2442 - RequiredError not displayed in the tooltip X-Git-Tag: 6.7.0.beta1~3355 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3c87eb58afdfac2fa1602bc55b7a070f6a804e1c;p=vaadin-framework.git Test case and fix for #2442 - RequiredError not displayed in the tooltip svn changeset:6509/svn branch:trunk --- 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) {