소스 검색

Fix removing rows over the cached range in Grid

Fixes #8840
tags/8.1.0.alpha3
Pekka Hyvönen 7 년 전
부모
커밋
1e0661129b
1개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 9
    1
      client/src/main/java/com/vaadin/client/data/AbstractRemoteDataSource.java

+ 9
- 1
client/src/main/java/com/vaadin/client/data/AbstractRemoteDataSource.java 파일 보기

@@ -665,7 +665,15 @@ public abstract class AbstractRemoteDataSource<T> implements DataSource<T> {
Range remainsBefore = partitions[0];
Range transposedRemainsAfter = partitions[2]
.offsetBy(-removedRange.length());
cached = remainsBefore.combineWith(transposedRemainsAfter);
// #8840 either can be empty if the removed range was over the
// cached range
if (remainsBefore.isEmpty()) {
cached = transposedRemainsAfter;
} else if (transposedRemainsAfter.isEmpty()) {
cached = remainsBefore;
} else {
cached = remainsBefore.combineWith(transposedRemainsAfter);
}
} else if (removedRange.getEnd() <= cached.getStart()) {
// Removal was before the cache. offset the cache.
cached = cached.offsetBy(-removedRange.length());

Loading…
취소
저장