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