summaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin/tests/tickets/Ticket2107.java
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/src/com/vaadin/tests/tickets/Ticket2107.java')
-rw-r--r--uitest/src/com/vaadin/tests/tickets/Ticket2107.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/tickets/Ticket2107.java b/uitest/src/com/vaadin/tests/tickets/Ticket2107.java
new file mode 100644
index 0000000000..37d570546b
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/tickets/Ticket2107.java
@@ -0,0 +1,59 @@
+package com.vaadin.tests.tickets;
+
+import com.vaadin.Application;
+import com.vaadin.data.Property;
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.Validator;
+import com.vaadin.ui.CheckBox;
+import com.vaadin.ui.Notification;
+import com.vaadin.ui.UI.LegacyWindow;
+import com.vaadin.ui.TextField;
+
+public class Ticket2107 extends Application.LegacyApplication {
+
+ @Override
+ public void init() {
+ final LegacyWindow w = new LegacyWindow("Testing for #2107");
+ setMainWindow(w);
+
+ final TextField tf = new TextField(
+ "Required field that validated the input");
+ tf.setDescription("Enter someting and click outside the field to activate");
+ tf.setRequired(true);
+ tf.setImmediate(true);
+ tf.addListener(new Property.ValueChangeListener() {
+
+ @Override
+ public void valueChange(ValueChangeEvent event) {
+ w.showNotification("TextField is " + (tf.isValid() ? "" : "in")
+ + "valid, with error: " + tf.getErrorMessage(),
+ Notification.TYPE_WARNING_MESSAGE);
+ }
+ });
+ tf.addValidator(new Validator() {
+
+ @Override
+ public void validate(Object value) throws InvalidValueException {
+ if (value == null || value.toString().length() <= 3) {
+ throw new InvalidValueException(
+ "Text length must exceed 3 characters");
+ }
+ }
+ });
+ w.addComponent(tf);
+
+ final CheckBox b = new CheckBox(
+ "Field should use error message. (!) should be shown when empty.",
+ false);
+ w.addComponent(b);
+ b.setImmediate(true);
+ b.addListener(new Property.ValueChangeListener() {
+ @Override
+ public void valueChange(ValueChangeEvent event) {
+ tf.setRequiredError(b.getValue() ? "Field must not be empty"
+ : null);
+ }
+ });
+ }
+
+}