From e3101036b44b2f69eaabf9fdd0d0889a035be6db Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Fri, 14 Aug 2009 12:28:09 +0000 Subject: [PATCH] fixes #3206 svn changeset:8486/svn branch:6.1 --- .../terminal/gwt/client/ui/VFilterSelect.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java b/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java index 600c4837a6..5716794e2c 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java @@ -643,6 +643,7 @@ public class VFilterSelect extends Composite implements Paintable, Field, currentPage = page; } + @SuppressWarnings("deprecation") public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { paintableId = uidl.getId(); this.client = client; @@ -737,6 +738,7 @@ public class VFilterSelect extends Composite implements Paintable, Field, filtering = false; if (!popupOpenerClicked && lastIndex != -1) { // we're paging w/ arrows + MenuItem activeMenuItem; if (lastIndex == 0) { // going up, select last item int lastItem = pageLength - 1; @@ -748,14 +750,20 @@ public class VFilterSelect extends Composite implements Paintable, Field, if (lastItem >= items.size()) { lastItem = items.size() - 1; } - suggestionPopup.menu.selectItem((MenuItem) items - .get(lastItem)); + activeMenuItem = (MenuItem) items.get(lastItem); + suggestionPopup.menu.selectItem(activeMenuItem); } else { // going down, select first item - suggestionPopup.menu - .selectItem((MenuItem) suggestionPopup.menu - .getItems().get(0)); + activeMenuItem = (MenuItem) suggestionPopup.menu.getItems() + .get(0); + suggestionPopup.menu.selectItem(activeMenuItem); } + + tb.setText(activeMenuItem.getText()); + tb.setSelectionRange(lastFilter.length(), activeMenuItem + .getText().length() + - lastFilter.length()); + lastIndex = -1; // reset } } -- 2.39.5