From 84dc2a30b3939d05ede85d5b66e3ff03650b51d0 Mon Sep 17 00:00:00 2001 From: Joonas Lehtinen Date: Mon, 19 May 2008 09:16:34 +0000 Subject: [PATCH] Test case for #20 svn changeset:4540/svn branch:trunk --- .../toolkit/tests/tickets/Ticket20.java | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 src/com/itmill/toolkit/tests/tickets/Ticket20.java 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"); + }; + })); + } + +} -- 2.39.5