]> source.dussan.org Git - vaadin-framework.git/commitdiff
Don't generate nullselection item if one is in the uidl.
authorMarc Englund <marc.englund@itmill.com>
Wed, 14 Nov 2007 14:49:27 +0000 (14:49 +0000)
committerMarc Englund <marc.englund@itmill.com>
Wed, 14 Nov 2007 14:49:27 +0000 (14:49 +0000)
svn changeset:2811/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java
src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java
src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java

index 72a0b9608d88b3d1e087d50f725758ee491481e5..3b65a6aa9ea7ad8851e64f1ae78e7fbe13a9b441 100644 (file)
@@ -30,7 +30,8 @@ public class IListSelect extends IOptionGroupBase {
         select.setMultipleSelect(isMultiselect());
         select.setEnabled(!isDisabled() && !isReadonly());
         select.clear();
-        if (!isMultiselect() && isNullSelectionAllowed()) {
+        if (!isMultiselect() && isNullSelectionAllowed()
+                && !isNullSelectionItemAvailable()) {
             // can't unselect last item in singleselect mode
             select.addItem("", null);
         }
index 53ad398e98909d1d25f58726b2540972ec8cca54..5a1d624eefab37ad2d1dc4909857c5fe7affdedb 100644 (file)
@@ -34,6 +34,8 @@ abstract class IOptionGroupBase extends Composite implements Paintable,
 \r
     private boolean nullSelectionAllowed = true;\r
 \r
+    private boolean nullSelectionItemAvailable = false;\r
+\r
     /**\r
      * Widget holding the different options (e.g. ListBox or Panel for radio\r
      * buttons) (optional, fallbacks to container Panel)\r
@@ -72,42 +74,26 @@ abstract class IOptionGroupBase extends Composite implements Paintable,
         return immediate;\r
     }\r
 \r
-    protected void setImmediate(boolean immediate) {\r
-        this.immediate = immediate;\r
-    }\r
-\r
     protected boolean isMultiselect() {\r
         return multiselect;\r
     }\r
 \r
-    protected void setMultiselect(boolean multiselect) {\r
-        this.multiselect = multiselect;\r
-    }\r
-\r
     protected boolean isDisabled() {\r
         return disabled;\r
     }\r
 \r
-    protected void setDisabled(boolean disabled) {\r
-        this.disabled = disabled;\r
-    }\r
-\r
     protected boolean isReadonly() {\r
         return readonly;\r
     }\r
 \r
-    protected void setReadonly(boolean readonly) {\r
-        this.readonly = readonly;\r
-    }\r
-\r
-    protected void setNullSelectionAllowed(boolean nullSelectionAllowed) {\r
-        this.nullSelectionAllowed = nullSelectionAllowed;\r
-    }\r
-\r
     protected boolean isNullSelectionAllowed() {\r
         return nullSelectionAllowed;\r
     }\r
 \r
+    protected boolean isNullSelectionItemAvailable() {\r
+        return nullSelectionItemAvailable;\r
+    }\r
+\r
     public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {\r
         this.client = client;\r
         id = uidl.getId();\r
@@ -123,6 +109,7 @@ abstract class IOptionGroupBase extends Composite implements Paintable,
         multiselect = "multi".equals(uidl.getStringAttribute("selectmode"));\r
         immediate = uidl.getBooleanAttribute("immediate");\r
         nullSelectionAllowed = uidl.getBooleanAttribute("nullselect");\r
+        nullSelectionItemAvailable = uidl.getBooleanAttribute("nullselectitem");\r
 \r
         UIDL ops = uidl.getChildUIDL(0);\r
 \r
index a062207fc84079c7bdf930fd83a28605e9c50b21..6c86316389ab1956a95e22fbdb51be15163638e8 100644 (file)
@@ -11,26 +11,24 @@ public class ISelect extends IOptionGroupBase {
 
     public static final String CLASSNAME = "i-select";
 
-    private static final int VISIBLE_COUNT = 10;
-
     protected ListBox select;
 
     public ISelect() {
-        super(new ListBox(), CLASSNAME);
+        super(new ListBox(false), CLASSNAME);
         select = (ListBox) optionsContainer;
+        select.setVisibleItemCount(1);
         select.addChangeListener(this);
         select.setStyleName(CLASSNAME + "-select");
+
     }
 
     protected void buildOptions(UIDL uidl) {
-        select.setMultipleSelect(isMultiselect());
-        if (isMultiselect()) {
-            select.setVisibleItemCount(VISIBLE_COUNT);
-        } else {
-            select.setVisibleItemCount(1);
-        }
         select.setEnabled(!isDisabled() && !isReadonly());
         select.clear();
+        if (isNullSelectionAllowed() && !isNullSelectionItemAvailable()) {
+            // can't unselect last item in singleselect mode
+            select.addItem("", null);
+        }
         for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
             UIDL optionUidl = (UIDL) i.next();
             select.addItem(optionUidl.getStringAttribute("caption"), optionUidl