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) ? " | " : "");