diff options
author | Teemu Suo-Anttila <teemusa@vaadin.com> | 2014-07-09 11:03:08 +0300 |
---|---|---|
committer | Teemu Suo-Anttila <teemusa@vaadin.com> | 2014-07-10 10:27:41 +0300 |
commit | efa97eafaed3a6803535ecb867b1dd90792d233b (patch) | |
tree | a8058db74f3ddb147a4a17503bec7d611daba28a /server | |
parent | c3026bec50d371d9fe172f76fd11528e95ffa88e (diff) | |
download | vaadin-framework-efa97eafaed3a6803535ecb867b1dd90792d233b.tar.gz vaadin-framework-efa97eafaed3a6803535ecb867b1dd90792d233b.zip |
Server-side sorting updates data on client-side (#13334)
Change-Id: If4576ed8605c4795d6edaa2f6d36cdb2eb9e8440
Diffstat (limited to 'server')
-rw-r--r-- | server/src/com/vaadin/data/RpcDataProviderExtension.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/server/src/com/vaadin/data/RpcDataProviderExtension.java b/server/src/com/vaadin/data/RpcDataProviderExtension.java index 801b925e2a..f731e4575d 100644 --- a/server/src/com/vaadin/data/RpcDataProviderExtension.java +++ b/server/src/com/vaadin/data/RpcDataProviderExtension.java @@ -583,11 +583,17 @@ public class RpcDataProviderExtension extends AbstractExtension { } else { - // TODO no diff info available, redraw everything - throw new UnsupportedOperationException("bare " - + "ItemSetChangeEvents are currently " - + "not supported, use a container that " - + "uses AddItemEvents and RemoveItemEvents."); + Range visibleRows = activeRowHandler.activeRange; + List<?> itemIds = container.getItemIds(visibleRows.getStart(), + visibleRows.length()); + + keyMapper.removeActiveRows(keyMapper.activeRange); + keyMapper.addActiveRows(visibleRows, visibleRows.getStart(), + itemIds); + + pushRows(visibleRows.getStart(), itemIds); + activeRowHandler.setActiveRows(visibleRows.getStart(), + visibleRows.length()); } } }; |