From: Matti Tahvonen Date: Wed, 5 Sep 2007 11:27:56 +0000 (+0000) Subject: some changes to work in the same way as extjs and dojo select X-Git-Tag: 6.7.0.beta1~6035 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=543b8ccd1096e0280e9da75b7368da41361482e3;p=vaadin-framework.git some changes to work in the same way as extjs and dojo select svn changeset:2198/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java index cdb3546120..ee1b16f475 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java @@ -137,9 +137,9 @@ public class IFilterSelect extends Composite implements Paintable, KeyboardListe public void onBrowserEvent(Event event) { Element target = DOM.eventGetTarget(event); if(DOM.compare(target, up)) { - filterOptions(currentPage - 1); + filterOptions(currentPage - 1, lastFilter); } else if (DOM.compare(target, down)) { - filterOptions(currentPage + 1); + filterOptions(currentPage + 1, lastFilter); } tb.setFocus(true); } @@ -219,10 +219,14 @@ public class IFilterSelect extends Composite implements Paintable, KeyboardListe popupOpener.setStyleName(CLASSNAME + "-popupopener"); popupOpener.addClickListener(this); } - + public void filterOptions(int page) { - String filter = tb.getText(); + filterOptions(page, tb.getText()); + } + + public void filterOptions(int page, String filter) { if (filter.equals(lastFilter) && currentPage == page) { + suggestionPopup.showSuggestions(currentSuggestions, currentPage, totalSuggestions); return; } if(!filter.equals(lastFilter)) { @@ -293,11 +297,11 @@ public class IFilterSelect extends Composite implements Paintable, KeyboardListe break; case KeyboardListener.KEY_PAGEDOWN: if(totalSuggestions > currentPage*(PAGELENTH+1)) - filterOptions(currentPage + 1); + filterOptions(currentPage + 1, lastFilter); break; case KeyboardListener.KEY_PAGEUP: if(currentPage > 0) - filterOptions(currentPage - 1); + filterOptions(currentPage - 1, lastFilter); break; case KeyboardListener.KEY_ENTER: case KeyboardListener.KEY_TAB: @@ -320,8 +324,7 @@ public class IFilterSelect extends Composite implements Paintable, KeyboardListe * Listener for popupopener */ public void onClick(Widget sender) { - filterOptions(0); - this.suggestionPopup.showSuggestions(currentSuggestions, currentPage, totalSuggestions); + filterOptions(0, ""); tb.setFocus(true); tb.selectAll(); }