diff options
Diffstat (limited to 'src/com/vaadin/tests/tickets/Ticket20.java')
-rw-r--r-- | src/com/vaadin/tests/tickets/Ticket20.java | 98 |
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"); + }; + })); + } + +} |