--- /dev/null
+package com.itmill.toolkit.tests.tickets;\r
+\r
+import java.util.Iterator;\r
+import java.util.LinkedList;\r
+\r
+import com.itmill.toolkit.ui.AbstractField;\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.Select;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+public class Ticket1804 extends com.itmill.toolkit.Application {\r
+\r
+ LinkedList listOfAllFields = new LinkedList();\r
+\r
+ public void init() {\r
+\r
+ final Window main = new Window("#1804");\r
+ setMainWindow(main);\r
+\r
+ com.itmill.toolkit.ui.Select s;\r
+\r
+ s = new Select("Select with null selection allowed; required=true");\r
+ s.setNullSelectionAllowed(true);\r
+ listOfAllFields.add(s);\r
+\r
+ s = new Select("Select with null selection NOT allowed; required=true");\r
+ s.setNullSelectionAllowed(false);\r
+ listOfAllFields.add(s);\r
+\r
+ for (Iterator i = listOfAllFields.iterator(); i.hasNext();) {\r
+ s = (Select) i.next();\r
+ main.addComponent(s);\r
+ s.addItem("<null>");\r
+ s.addItem("foo");\r
+ s.addItem("");\r
+ s.addItem("bar");\r
+ s.setNullSelectionItemId("<null>");\r
+ s.setImmediate(true);\r
+ s.setRequired(true);\r
+ }\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
+ AbstractField af = (AbstractField) i.next();\r
+ msg.append("<h1>" + af.getCaption() + "</h1>\n");\r
+ msg.append("Value=" + af.getValue() + "<br/>\n");\r
+ if (af.isValid()) {\r
+ msg.append("VALID\n<hr/>");\r
+ } else {\r
+ msg.append("INVALID<br/><i>" + af.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