summaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/tests/tickets/Ticket20.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/vaadin/tests/tickets/Ticket20.java')
-rw-r--r--src/com/vaadin/tests/tickets/Ticket20.java98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/com/vaadin/tests/tickets/Ticket20.java b/src/com/vaadin/tests/tickets/Ticket20.java
new file mode 100644
index 0000000000..7adb2e932e
--- /dev/null
+++ b/src/com/vaadin/tests/tickets/Ticket20.java
@@ -0,0 +1,98 @@
+package com.vaadin.tests.tickets;
+
+import com.vaadin.Application;
+import com.vaadin.data.Validator;
+import com.vaadin.data.util.MethodProperty;
+import com.vaadin.data.validator.CompositeValidator;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.Window;
+
+public class Ticket20 extends Application {
+
+ @Override
+ public void init() {
+
+ final Window mainWin = new Window("Test app for #20");
+ setMainWindow(mainWin);
+
+ final TextField tx = new TextField("Integer");
+ mainWin.addComponent(tx);
+ tx.setImmediate(true);
+ CompositeValidator v = new CompositeValidator();
+ v.addValidator(new Validator() {
+
+ public boolean isValid(Object value) {
+ try {
+ Integer.parseInt("" + value);
+ return true;
+ } catch (NumberFormatException e) {
+ return false;
+ }
+ }
+
+ public void validate(Object value) throws InvalidValueException {
+ if (!isValid(value)) {
+ throw new InvalidValueException(value + " is not a number");
+ }
+ }
+ });
+ v.addValidator(new Validator() {
+
+ public boolean isValid(Object value) {
+ try {
+ int i = Integer.parseInt("" + value);
+ if (i < 0) {
+ return false;
+ }
+ return true;
+ } catch (NumberFormatException e) {
+ return false;
+ }
+ }
+
+ public void validate(Object value) throws InvalidValueException {
+ if (!isValid(value)) {
+ throw new InvalidValueException(value
+ + " is not a non-negative number");
+ }
+ }
+ });
+ CompositeValidator v2 = new CompositeValidator(
+ CompositeValidator.MODE_OR, null);
+ v2.addValidator(v);
+ v2.addValidator(new Validator() {
+
+ public boolean isValid(Object value) {
+ return "".equals("" + value);
+ }
+
+ public void validate(Object value) throws InvalidValueException {
+ if (!isValid(value)) {
+ throw new InvalidValueException("Value is not empty string");
+ }
+ }
+ });
+ tx.addValidator(v2);
+
+ final String[] visibleProps = { "required", "invalidAllowed",
+ "readOnly", "readThrough", "invalidCommitted",
+ "validationVisible" };
+ for (int i = 0; i < visibleProps.length; i++) {
+ Button b = new Button(visibleProps[i], new MethodProperty(tx,
+ visibleProps[i]));
+ b.setImmediate(true);
+ mainWin.addComponent(b);
+ }
+
+ mainWin.addComponent(new Button("Validate integer",
+ new Button.ClickListener() {
+ public void buttonClick(
+ com.vaadin.ui.Button.ClickEvent event) {
+ mainWin.showNotification("The field is "
+ + (tx.isValid() ? "" : "not ") + "valid");
+ };
+ }));
+ }
+
+}