currentPage = page;
}
+ @SuppressWarnings("deprecation")
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
paintableId = uidl.getId();
this.client = client;
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;
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
}
}