diff options
Diffstat (limited to 'src/com/itmill/toolkit/ui/Select.java')
-rw-r--r-- | src/com/itmill/toolkit/ui/Select.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/com/itmill/toolkit/ui/Select.java b/src/com/itmill/toolkit/ui/Select.java index e56666f3ad..bf31d9c3ad 100644 --- a/src/com/itmill/toolkit/ui/Select.java +++ b/src/com/itmill/toolkit/ui/Select.java @@ -234,22 +234,25 @@ public class Select extends AbstractSelect implements AbstractSelect.Filtering { this.filteredOptions = new LinkedList(getItemIds()); return this.filteredOptions; } + if (this.filterstring.equals(this.prevfilterstring)) { return this.filteredOptions; } Collection items; - if (this.filterstring.startsWith(this.prevfilterstring)) { - items = this.filteredOptions; + if (prevfilterstring != null + && filterstring.startsWith(this.prevfilterstring)) { + items = filteredOptions; } else { items = getItemIds(); } + prevfilterstring = filterstring; this.filteredOptions = new LinkedList(); for (Iterator it = items.iterator(); it.hasNext();) { Object itemId = it.next(); - String caption = getItemCaption(it); - if (caption != null || caption.equals("")) { + String caption = getItemCaption(itemId); + if (caption == null || caption.equals("")) { continue; } switch (this.filteringMode) { |