diff options
author | Joonas Lehtinen <joonas.lehtinen@itmill.com> | 2008-05-19 09:16:34 +0000 |
---|---|---|
committer | Joonas Lehtinen <joonas.lehtinen@itmill.com> | 2008-05-19 09:16:34 +0000 |
commit | 84dc2a30b3939d05ede85d5b66e3ff03650b51d0 (patch) | |
tree | cd36ff77d3e99f2c1702040745db0def0d43c2c2 | |
parent | 5c921be9b94c4944b00fb767a32cbb3fd97e59e5 (diff) | |
download | vaadin-framework-84dc2a30b3939d05ede85d5b66e3ff03650b51d0.tar.gz vaadin-framework-84dc2a30b3939d05ede85d5b66e3ff03650b51d0.zip |
Test case for #20
svn changeset:4540/svn branch:trunk
-rw-r--r-- | src/com/itmill/toolkit/tests/tickets/Ticket20.java | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/src/com/itmill/toolkit/tests/tickets/Ticket20.java b/src/com/itmill/toolkit/tests/tickets/Ticket20.java new file mode 100644 index 0000000000..d074509f2a --- /dev/null +++ b/src/com/itmill/toolkit/tests/tickets/Ticket20.java @@ -0,0 +1,97 @@ +package com.itmill.toolkit.tests.tickets; + +import com.itmill.toolkit.Application; +import com.itmill.toolkit.data.Validator; +import com.itmill.toolkit.data.util.MethodProperty; +import com.itmill.toolkit.data.validator.CompositeValidator; +import com.itmill.toolkit.ui.Button; +import com.itmill.toolkit.ui.TextField; +import com.itmill.toolkit.ui.Window; + +public class Ticket20 extends Application { + + 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.itmill.toolkit.ui.Button.ClickEvent event) { + mainWin.showNotification("The field is " + + (tx.isValid() ? "" : "not ") + "valid"); + }; + })); + } + +} |