Revision: 8935
Author: jlaba...@google.com
Date: Tue Oct  5 05:40:44 2010
Log: 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.

Review at http://gwt-code-reviews.appspot.com/950802

Review by: r...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=8935

Modified:
 /trunk/user/src/com/google/gwt/user/cellview/client/HasDataPresenter.java
/trunk/user/test/com/google/gwt/user/cellview/client/HasDataPresenterTest.java

=======================================
--- /trunk/user/src/com/google/gwt/user/cellview/client/HasDataPresenter.java Wed Sep 22 12:58:01 2010 +++ /trunk/user/src/com/google/gwt/user/cellview/client/HasDataPresenter.java Tue Oct 5 05:40:44 2010
@@ -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);
=======================================
--- /trunk/user/test/com/google/gwt/user/cellview/client/HasDataPresenterTest.java Wed Sep 22 12:58:01 2010 +++ /trunk/user/test/com/google/gwt/user/cellview/client/HasDataPresenterTest.java Tue Oct 5 05:40:44 2010
@@ -350,6 +350,18 @@
     view.assertOnUpdateSelectionFired(false);
     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>();
@@ -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