Fixes a list subset error in AbstractListModel that was breaking paging. Changes ListListModel's deferred command to be more careful about clearing its pending state (so that an exception won't break it permanently). Review at http://gwt-code-reviews.appspot.com/293801 Review by: rice@google.com git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@7836 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/bikeshed/src/com/google/gwt/bikeshed/list/shared/AbstractListModel.java b/bikeshed/src/com/google/gwt/bikeshed/list/shared/AbstractListModel.java index 43fdca2..b66db76 100644 --- a/bikeshed/src/com/google/gwt/bikeshed/list/shared/AbstractListModel.java +++ b/bikeshed/src/com/google/gwt/bikeshed/list/shared/AbstractListModel.java
@@ -159,7 +159,8 @@ int realStart = curStart < start ? start : curStart; int realEnd = curEnd > end ? end : curEnd; int realLength = realEnd - realStart; - List<T> realValues = values.subList(0, realLength); + List<T> realValues = values.subList(realStart - start, + realStart - start + realLength); ListEvent<T> event = new ListEvent<T>(realStart, realLength, realValues); reg.getHandler().onDataChanged(event); }
diff --git a/bikeshed/src/com/google/gwt/bikeshed/list/shared/ListListModel.java b/bikeshed/src/com/google/gwt/bikeshed/list/shared/ListListModel.java index b9c1a11..c1c2645 100644 --- a/bikeshed/src/com/google/gwt/bikeshed/list/shared/ListListModel.java +++ b/bikeshed/src/com/google/gwt/bikeshed/list/shared/ListListModel.java
@@ -48,6 +48,8 @@ */ private Command flushCommand = new Command() { public void execute() { + flushPending = false; + int newSize = list.size(); if (curSize != newSize) { curSize = newSize; @@ -61,7 +63,6 @@ } minModified = Integer.MAX_VALUE; maxModified = Integer.MIN_VALUE; - flushPending = false; } };