Always show "more" link when pager's list view has an inexact item count. More should set a range beyond the current datasize if the count is inexact.
Review at http://gwt-code-reviews.appspot.com/708803
Review by: jlabanca@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8474 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/cellview/client/PageSizePager.java b/user/src/com/google/gwt/user/cellview/client/PageSizePager.java
index 3259577..08c04ee 100644
--- a/user/src/com/google/gwt/user/cellview/client/PageSizePager.java
+++ b/user/src/com/google/gwt/user/cellview/client/PageSizePager.java
@@ -57,8 +57,9 @@
showMoreButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Range range = listView.getRange();
- int pageSize = Math.min(range.getLength() + increment,
- listView.getDataSize());
+ int pageSize = Math.min(
+ range.getLength() + increment,
+ listView.getDataSize() + (listView.isDataSizeExact() ? 0 : increment));
listView.setRange(range.getStart(), pageSize);
}
});
@@ -84,7 +85,7 @@
// Assumes a page start index of 0.
int pageSize = listView.getRange().getLength();
boolean hasLess = pageSize > increment;
- boolean hasMore = pageSize < listView.getDataSize();
+ boolean hasMore = !listView.isDataSizeExact() || pageSize < listView.getDataSize();
showLessButton.setVisible(hasLess);
showMoreButton.setVisible(hasMore);
layout.setText(0, 1, (hasLess && hasMore) ? " | " : "");