Changeset 5249

Show
Ignore:
Timestamp:
08/25/08 05:50:59 (3 months ago)
Author:
artur.signell@…
Message:

Fixes #1230 - NPE in AbstractSelect?.select and allow selecting null -> NullSelectionItem?

Location:
trunk/src/com/itmill/toolkit
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/com/itmill/toolkit/tests/tickets/Ticket1230.java

    r5246 r5249  
    2121        setMainWindow(w); 
    2222 
    23         GridLayout layout = new GridLayout(3, 5); 
     23        GridLayout layout = new GridLayout(5, 5); 
    2424        w.setLayout(layout); 
    2525 
     
    3434                public void buttonClick(ClickEvent event) { 
    3535                    selectWithoutNullItem.select(NULL_ITEM_ID); 
     36 
     37                } 
     38            }); 
     39            layout.addComponent(b); 
     40            b = new Button("Select 1", new ClickListener() { 
     41 
     42                public void buttonClick(ClickEvent event) { 
     43                    selectWithoutNullItem.select("1"); 
     44 
     45                } 
     46            }); 
     47            layout.addComponent(b); 
     48            b = new Button("Select 2", new ClickListener() { 
     49 
     50                public void buttonClick(ClickEvent event) { 
     51                    selectWithoutNullItem.select("2"); 
    3652 
    3753                } 
     
    6076                public void buttonClick(ClickEvent event) { 
    6177                    selectWithNullItem.select(NULL_ITEM_ID); 
     78 
     79                } 
     80            }); 
     81            layout.addComponent(b); 
     82 
     83            b = new Button("Select 1", new ClickListener() { 
     84 
     85                public void buttonClick(ClickEvent event) { 
     86                    selectWithNullItem.select("1"); 
     87 
     88                } 
     89            }); 
     90            layout.addComponent(b); 
     91            b = new Button("Select 2", new ClickListener() { 
     92 
     93                public void buttonClick(ClickEvent event) { 
     94                    selectWithNullItem.select("2"); 
    6295 
    6396                } 
  • trunk/src/com/itmill/toolkit/ui/AbstractSelect.java

    r4886 r5249  
    591591    public void setValue(Object newValue) throws Property.ReadOnlyException, 
    592592            Property.ConversionException { 
     593        if (newValue == null) { 
     594            newValue = getNullSelectionItemId(); 
     595        } 
     596 
    593597        setValue(newValue, false); 
    594598    } 
     
    13191323     */ 
    13201324    public void select(Object itemId) { 
    1321         if (!isSelected(itemId) && items.containsId(itemId)) { 
    1322             if (isMultiSelect()) { 
    1323                 final Set s = new HashSet((Set) getValue()); 
    1324                 s.add(itemId); 
    1325                 setValue(s); 
    1326             } else if (itemId.equals(getNullSelectionItemId())) { 
    1327                 setValue(null); 
    1328             } else { 
    1329                 setValue(itemId); 
    1330             } 
     1325        if (!isMultiSelect()) { 
     1326            setValue(itemId); 
     1327        } else if (!isSelected(itemId) && itemId != null 
     1328                && items.containsId(itemId)) { 
     1329            final Set s = new HashSet((Set) getValue()); 
     1330            s.add(itemId); 
     1331            setValue(s); 
    13311332        } 
    13321333    }