aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Englund <marc.englund@itmill.com>2007-11-14 14:49:27 +0000
committerMarc Englund <marc.englund@itmill.com>2007-11-14 14:49:27 +0000
commit39a1152a248eca61472ddeda19aefa38e60fc2b7 (patch)
tree1d9ea84cd006ae1977f088c68b104ab7b9bbd9f2
parent237f885b07121eae7d6cb7a51b0cf2fabf33b2d2 (diff)
downloadvaadin-framework-39a1152a248eca61472ddeda19aefa38e60fc2b7.tar.gz
vaadin-framework-39a1152a248eca61472ddeda19aefa38e60fc2b7.zip
Don't generate nullselection item if one is in the uidl.
svn changeset:2811/svn branch:trunk
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java3
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java27
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java16
3 files changed, 16 insertions, 30 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java
index 72a0b9608d..3b65a6aa9e 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java
@@ -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);
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java
index 53ad398e98..5a1d624eef 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java
@@ -34,6 +34,8 @@ abstract class IOptionGroupBase extends Composite implements Paintable,
private boolean nullSelectionAllowed = true;
+ private boolean nullSelectionItemAvailable = false;
+
/**
* Widget holding the different options (e.g. ListBox or Panel for radio
* buttons) (optional, fallbacks to container Panel)
@@ -72,42 +74,26 @@ abstract class IOptionGroupBase extends Composite implements Paintable,
return immediate;
}
- protected void setImmediate(boolean immediate) {
- this.immediate = immediate;
- }
-
protected boolean isMultiselect() {
return multiselect;
}
- protected void setMultiselect(boolean multiselect) {
- this.multiselect = multiselect;
- }
-
protected boolean isDisabled() {
return disabled;
}
- protected void setDisabled(boolean disabled) {
- this.disabled = disabled;
- }
-
protected boolean isReadonly() {
return readonly;
}
- protected void setReadonly(boolean readonly) {
- this.readonly = readonly;
- }
-
- protected void setNullSelectionAllowed(boolean nullSelectionAllowed) {
- this.nullSelectionAllowed = nullSelectionAllowed;
- }
-
protected boolean isNullSelectionAllowed() {
return nullSelectionAllowed;
}
+ protected boolean isNullSelectionItemAvailable() {
+ return nullSelectionItemAvailable;
+ }
+
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
this.client = client;
id = uidl.getId();
@@ -123,6 +109,7 @@ abstract class IOptionGroupBase extends Composite implements Paintable,
multiselect = "multi".equals(uidl.getStringAttribute("selectmode"));
immediate = uidl.getBooleanAttribute("immediate");
nullSelectionAllowed = uidl.getBooleanAttribute("nullselect");
+ nullSelectionItemAvailable = uidl.getBooleanAttribute("nullselectitem");
UIDL ops = uidl.getChildUIDL(0);
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java
index a062207fc8..6c86316389 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java
@@ -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