diff options
author | Artur Signell <artur.signell@itmill.com> | 2008-08-25 05:50:59 +0000 |
---|---|---|
committer | Artur Signell <artur.signell@itmill.com> | 2008-08-25 05:50:59 +0000 |
commit | 728f60409e3ca3dd8f85fff714b972cbd474b665 (patch) | |
tree | 1d7370c37b73ac3043a94ff17af713d3e8d82a46 /src/com/itmill/toolkit/ui/AbstractSelect.java | |
parent | 647f3c761d27410eb336e8d733566c43caaa1d75 (diff) | |
download | vaadin-framework-728f60409e3ca3dd8f85fff714b972cbd474b665.tar.gz vaadin-framework-728f60409e3ca3dd8f85fff714b972cbd474b665.zip |
Fixes #1230 - NPE in AbstractSelect.select and allow selecting null -> NullSelectionItem
svn changeset:5249/svn branch:trunk
Diffstat (limited to 'src/com/itmill/toolkit/ui/AbstractSelect.java')
-rw-r--r-- | src/com/itmill/toolkit/ui/AbstractSelect.java | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/com/itmill/toolkit/ui/AbstractSelect.java b/src/com/itmill/toolkit/ui/AbstractSelect.java index fc7acaff30..b368f755a4 100644 --- a/src/com/itmill/toolkit/ui/AbstractSelect.java +++ b/src/com/itmill/toolkit/ui/AbstractSelect.java @@ -590,6 +590,10 @@ public abstract class AbstractSelect extends AbstractField implements */ public void setValue(Object newValue) throws Property.ReadOnlyException, Property.ConversionException { + if (newValue == null) { + newValue = getNullSelectionItemId(); + } + setValue(newValue, false); } @@ -1318,16 +1322,13 @@ public abstract class AbstractSelect extends AbstractField implements * */ public void select(Object itemId) { - if (!isSelected(itemId) && items.containsId(itemId)) { - if (isMultiSelect()) { - final Set s = new HashSet((Set) getValue()); - s.add(itemId); - setValue(s); - } else if (itemId.equals(getNullSelectionItemId())) { - setValue(null); - } else { - setValue(itemId); - } + if (!isMultiSelect()) { + setValue(itemId); + } else if (!isSelected(itemId) && itemId != null + && items.containsId(itemId)) { + final Set s = new HashSet((Set) getValue()); + s.add(itemId); + setValue(s); } } |