From 68289746e14531d2de2eb143fb20ede625931a54 Mon Sep 17 00:00:00 2001 From: Marc Englund Date: Thu, 21 Aug 2008 09:43:07 +0000 Subject: [PATCH] Displayed empty if value==null even if nullselection is not allowed. Fixes #1996 svn changeset:5232/svn branch:trunk --- .../terminal/gwt/client/ui/INativeSelect.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/INativeSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/INativeSelect.java index b011928bf9..9cc1e685c8 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/INativeSelect.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/INativeSelect.java @@ -34,14 +34,23 @@ public class INativeSelect extends IOptionGroupBase implements Field { // can't unselect last item in singleselect mode select.addItem("", null); } + boolean selected = false; for (final Iterator i = uidl.getChildIterator(); i.hasNext();) { final UIDL optionUidl = (UIDL) i.next(); select.addItem(optionUidl.getStringAttribute("caption"), optionUidl .getStringAttribute("key")); if (optionUidl.hasAttribute("selected")) { select.setItemSelected(select.getItemCount() - 1, true); + selected = true; } } + if (!selected && !isNullSelectionAllowed()) { + // null-select not allowed, but value not selected yet; add null and + // remove when something is selected + select.insertItem("", null, 0); + select.setItemSelected(0, true); + } + } protected Object[] getSelectedItems() { @@ -55,6 +64,7 @@ public class INativeSelect extends IOptionGroupBase implements Field { } public void onChange(Widget sender) { + if (select.isMultipleSelect()) { client.updateVariable(id, "selected", getSelectedItems(), isImmediate()); @@ -62,6 +72,10 @@ public class INativeSelect extends IOptionGroupBase implements Field { client.updateVariable(id, "selected", new String[] { "" + getSelectedItem() }, isImmediate()); } + if (!isNullSelectionAllowed() && "null".equals(select.getValue(0))) { + // remove temporary empty item + select.removeItem(0); + } } public void setHeight(String height) { -- 2.39.5