From: Marc Englund Date: Wed, 25 Nov 2009 07:52:42 +0000 (+0000) Subject: Merged from 6.1 for #3088 X-Git-Tag: 6.7.0.beta1~2259 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=fbc45d1df97fc02b9752663e5afc2c43fb9bb444;p=vaadin-framework.git Merged from 6.1 for #3088 svn changeset:10000/svn branch:6.2 --- diff --git a/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java b/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java index 35ba810484..ed0c338ce9 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java @@ -182,6 +182,7 @@ public class VFilterSelect extends Composite implements Paintable, Field, "width", ""); setPopupPositionAndShow(this); + } private void setNextButtonActive(boolean b) { @@ -500,8 +501,10 @@ public class VFilterSelect extends Composite implements Paintable, Field, } } else if (item != null && !"".equals(lastFilter) - && item.getText().toLowerCase().startsWith( - lastFilter.toLowerCase())) { + && (filteringmode == FILTERINGMODE_CONTAINS ? item + .getText().toLowerCase().contains( + lastFilter.toLowerCase()) : item.getText() + .toLowerCase().startsWith(lastFilter.toLowerCase()))) { doItemAction(item, true); } else { // currentSuggestion has key="" for nullselection @@ -596,6 +599,8 @@ public class VFilterSelect extends Composite implements Paintable, Field, private boolean enabled; private boolean readonly; + private int filteringmode = FILTERINGMODE_OFF; + // shown in unfocused empty field, disappears on focus (e.g "Search here") private static final String CLASSNAME_PROMPT = "prompt"; private static final String ATTR_INPUTPROMPT = "prompt"; @@ -699,6 +704,10 @@ public class VFilterSelect extends Composite implements Paintable, Field, tb.setTabIndex(uidl.getIntAttribute("tabindex")); } + if (uidl.hasAttribute("filteringmode")) { + filteringmode = uidl.getIntAttribute("filteringmode"); + } + immediate = uidl.hasAttribute("immediate"); nullSelectionAllowed = uidl.hasAttribute("nullselect"); @@ -951,6 +960,11 @@ public class VFilterSelect extends Composite implements Paintable, Field, if (suggestionPopup.isAttached()) { filterOptions(currentPage); } + if (currentSuggestions.size() == 1 && !allowNewItem) { + // If there is only one suggestion, select that + suggestionPopup.menu.selectItem((MenuItem) suggestionPopup.menu + .getItems().get(0)); + } suggestionPopup.menu.doSelectedItemAction(); break; }