From 7c666980c0dabcf6f3dbcd0e395b5cbdec024dc7 Mon Sep 17 00:00:00 2001 From: Anna Koskinen Date: Fri, 20 Aug 2021 14:27:18 +0300 Subject: Updates to TreeGrid's ensureAvailability handling. (#12374) - Always update the availability request range when more or less data becomes available. Otherwise e.g. programmatically expanding a TreeGrid row can lead to discarding a lot of the new data right after receiving it. Fixes #12372 --- .../client/ui/treegrid/TreeGridConnector.java | 24 ++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'client/src') diff --git a/client/src/main/java/com/vaadin/client/ui/treegrid/TreeGridConnector.java b/client/src/main/java/com/vaadin/client/ui/treegrid/TreeGridConnector.java index 7c2475dd09..2172ee1d0f 100644 --- a/client/src/main/java/com/vaadin/client/ui/treegrid/TreeGridConnector.java +++ b/client/src/main/java/com/vaadin/client/ui/treegrid/TreeGridConnector.java @@ -207,13 +207,12 @@ public class TreeGridConnector extends GridConnector { public void dataRemoved(int firstRowIndex, int numberOfRows) { if (awaitingRowsState == AwaitingRowsState.COLLAPSE) { awaitingRowsState = AwaitingRowsState.NONE; - // make sure the cache stays up to date with the collapsing - Range visibleRowRange = getWidget().getEscalator() - .getVisibleRowRange(); - getDataSource().ensureAvailability( - visibleRowRange.getStart(), - visibleRowRange.length()); } + // make sure the cache stays up to date + Range visibleRowRange = getWidget().getEscalator() + .getVisibleRowRange(); + getDataSource().ensureAvailability(visibleRowRange.getStart(), + visibleRowRange.length()); checkExpand(); } @@ -221,13 +220,12 @@ public class TreeGridConnector extends GridConnector { public void dataAdded(int firstRowIndex, int numberOfRows) { if (awaitingRowsState == AwaitingRowsState.EXPAND) { awaitingRowsState = AwaitingRowsState.NONE; - // make sure the cache stays up to date with the expanding - Range visibleRowRange = getWidget().getEscalator() - .getVisibleRowRange(); - getDataSource().ensureAvailability( - visibleRowRange.getStart(), - visibleRowRange.length()); } + // make sure the cache stays up to date + Range visibleRowRange = getWidget().getEscalator() + .getVisibleRowRange(); + getDataSource().ensureAvailability(visibleRowRange.getStart(), + visibleRowRange.length()); checkExpand(); } @@ -252,7 +250,7 @@ public class TreeGridConnector extends GridConnector { GridEventHandler eventHandler) /*-{ var browserEventHandlers = grid.@com.vaadin.client.widgets.Grid::browserEventHandlers; - + // FocusEventHandler is initially 5th in the list of browser event handlers browserEventHandlers.@java.util.List::set(*)(5, eventHandler); }-*/; -- cgit v1.2.3