Reviewers: rice,

Description:
Changes the default row count of HasDataPresenter from Integer.MIN_VALUE
to a more reasonable 0. We use the boolean isRowCountExact to determine
if we actually have 0 rows, or just think we do.


Please review this at http://gwt-code-reviews.appspot.com/950802/show

Affected files:
  M user/src/com/google/gwt/user/cellview/client/HasDataPresenter.java
  M user/test/com/google/gwt/user/cellview/client/HasDataPresenterTest.java


Index: user/src/com/google/gwt/user/cellview/client/HasDataPresenter.java
===================================================================
--- user/src/com/google/gwt/user/cellview/client/HasDataPresenter.java (revision 8928) +++ user/src/com/google/gwt/user/cellview/client/HasDataPresenter.java (working copy)
@@ -269,7 +269,7 @@
    */
   private boolean pageStartChangedSinceRender;

-  private int rowCount = Integer.MIN_VALUE;
+  private int rowCount = 0;

   private boolean rowCountIsExact;

@@ -950,7 +950,7 @@
   private void updateLoadingState() {
     int cacheSize = rowData.size();
     int curPageSize = isRowCountExact() ? getCurrentPageSize() : pageSize;
-    if (rowCount == 0) {
+    if (rowCount == 0 && rowCountIsExact) {
       view.setLoadingState(LoadingState.EMPTY);
     } else if (cacheSize >= curPageSize) {
       view.setLoadingState(LoadingState.LOADED);
Index: user/test/com/google/gwt/user/cellview/client/HasDataPresenterTest.java
===================================================================
--- user/test/com/google/gwt/user/cellview/client/HasDataPresenterTest.java (revision 8928) +++ user/test/com/google/gwt/user/cellview/client/HasDataPresenterTest.java (working copy)
@@ -351,6 +351,18 @@
     view.assertSelectedRows();
   }

+  public void testDefaults() {
+    HasData<String> listView = new MockHasData<String>();
+    MockView<String> view = new MockView<String>();
+ HasDataPresenter<String> presenter = new HasDataPresenter<String>(listView,
+        view, 10, null);
+
+    assertEquals(0, presenter.getRowCount());
+    assertFalse(presenter.isRowCountExact());
+    assertEquals(0, presenter.getCurrentPageSize());
+    assertEquals(new Range(0, 10), presenter.getVisibleRange());
+  }
+
   public void testGetCurrentPageSize() {
     HasData<String> listView = new MockHasData<String>();
     MockView<String> view = new MockView<String>();
@@ -884,10 +896,17 @@
     assertTrue(presenter.isRowCountExact());
     view.assertLoadingState(LoadingState.LOADING);

-    // Set size to 0.
+ // Set size to 0, but not exact. The state is loading until we know there is
+    // no data.
     presenter.setRowCount(0, false);
     assertEquals(0, presenter.getRowCount());
     assertFalse(presenter.isRowCountExact());
+    view.assertLoadingState(LoadingState.LOADING);
+
+    // Set size to 0 and exact. Now we know the list is empty.
+    presenter.setRowCount(0, true);
+    assertEquals(0, presenter.getRowCount());
+    assertTrue(presenter.isRowCountExact());
     view.assertLoadingState(LoadingState.EMPTY);
   }



--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to