setPopupPosition(x, y);
final int first = currentPage * PAGELENTH + 1;
final int last = first + currentSuggestions.size() - 1;
- DOM.setInnerText(status, (totalSuggestions == 0 ? 0 : first) + "-"
- + last + "/" + totalSuggestions);
+ final int matches = totalSuggestions
+ - (nullSelectionAllowed ? 1 : 0);
+ if (last > 0) {
+ DOM.setInnerText(status, (totalSuggestions == 0 ? 0 : first)
+ + "-" + last + "/" + matches);
+ } else {
+ DOM.setInnerText(status, "");
+ }
setPrevButtonActive(first > 1);
- setNextButtonActive(last < totalSuggestions);
+ setNextButtonActive(last < matches);
// clear previously fixed width
menu.setWidth("");
* to avoid height changes when quickly "scrolling" to last page
*/
public void fixHeightTo(int pagelenth) {
- final int pixels = pagelenth * (getOffsetHeight() - 2)
- / currentSuggestions.size();
- setHeight((pixels + 2) + "px");
+ if (currentSuggestions.size() > 0) {
+ final int pixels = pagelenth * (getOffsetHeight() - 2)
+ / currentSuggestions.size();
+ setHeight((pixels + 2) + "px");
+ }
}
public void setSuggestions(Collection suggestions) {
}
public boolean hasNextPage() {
- if (totalSuggestions > (currentPage + 1) * PAGELENTH) {
+ if (totalMatches > (currentPage + 1) * PAGELENTH) {
return true;
} else {
return false;