--- /dev/null
+package com.itmill.toolkit.tests.tickets;\r
+\r
+import java.util.LinkedList;\r
+\r
+import com.itmill.toolkit.data.validator.StringLengthValidator;\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.TextField;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+public class Ticket1811 extends com.itmill.toolkit.Application {\r
+\r
+ LinkedList listOfAllFields = new LinkedList();\r
+\r
+ public void init() {\r
+\r
+ final Window main = new Window("#1811");\r
+ setMainWindow(main);\r
+\r
+ TextField tf1 = new TextField(\r
+ "Text field with default settings (required=false)");\r
+ main.addComponent(tf1);\r
+ listOfAllFields.add(tf1);\r
+\r
+ TextField tf2 = new TextField("Text field with required=true");\r
+ tf2.setRequired(true);\r
+ main.addComponent(tf2);\r
+ listOfAllFields.add(tf2);\r
+\r
+ TextField tf3 = new TextField(\r
+ "Text field with required=true and strlen >= 3");\r
+ tf3.setRequired(true);\r
+ tf3.addValidator(new StringLengthValidator(\r
+ "String must be at least 3 chars long and non-null", 3, 1,\r
+ false));\r
+ main.addComponent(tf3);\r
+ listOfAllFields.add(tf3);\r
+\r
+ TextField tf4 = new TextField(\r
+ "Text field with required=false (default) and strlen >= 3");\r
+ tf4.addValidator(new StringLengthValidator(\r
+ "String must be at least 3 chars long and non-null", 3, 1,\r
+ false));\r
+ main.addComponent(tf4);\r
+ listOfAllFields.add(tf4);\r
+\r
+ Button checkValidity = new Button("Check validity of the fields");\r
+ main.addComponent(checkValidity);\r
+ checkValidity.addListener(new Button.ClickListener() {\r
+\r
+ public void buttonClick(ClickEvent event) {\r
+ StringBuffer msg = new StringBuffer();\r
+ for (java.util.Iterator i = listOfAllFields.iterator(); i\r
+ .hasNext();) {\r
+ TextField tf = (TextField) i.next();\r
+ msg.append("<h1>" + tf.getCaption() + "</h1>\n");\r
+ if (tf.isValid()) {\r
+ msg.append("VALID\n<hr/>");\r
+ } else {\r
+ msg.append("INVALID<br/><i>" + tf.getErrorMessage()\r
+ + "</i><hr/>");\r
+ }\r
+ }\r
+ Window w = new Window("Status of the fields");\r
+ w.setModal(true);\r
+ w.addComponent(new Label(msg.toString(), Label.CONTENT_XHTML));\r
+ main.addWindow(w);\r
+ }\r
+ });\r
+ }\r
+\r
+}\r