]> source.dussan.org Git - vaadin-framework.git/commit
Updated row and spacer handling for Escalator (#11438) 8.9.0.beta3
authorAnna Koskinen <Ansku@users.noreply.github.com>
Thu, 29 Aug 2019 13:06:25 +0000 (16:06 +0300)
committerZhe Sun <31067185+ZheSun88@users.noreply.github.com>
Fri, 30 Aug 2019 06:16:12 +0000 (09:16 +0300)
commitba158beabb86faf94a02dc0e8993b96871a7f756
tree414463ad13dcb1f22e38f20dfdb9d550217d8a3a
parent67575f1e7539961a6c836f271205323a67ab3613
Updated row and spacer handling for Escalator (#11438)

Updated row and spacer handling for Escalator.

Main changes:
- Spacers are only maintained and checked for rows that have DOM
representation, and not at all if there is no details generator. This
gives notable performance improvements to some particularly large Grids
- Escalator no longer tries to trim away any rows that don't fit within
the viewport just because a details row gets opened in Grid. This leads
to some increase in simultaneous DOM elements, but simplifies the logic
considerably. For example opening or closing details rows doesn't
require checking the overall content validity beyond the details row
itself anymore, but some repositioning at most. There are also no longer
any orphaned spacers without corresponding DOM rows.
- Spacers are better integrated into the overall position calculations.
- Some public methods that are no longer used by Escalator or have
changed functionality or order of operations. Any extending classes that
tap into row, spacer, or scroll position handling are likely to need
reworking after this update.
- Auto-detecting row height is delayed until Escalator is both attached
and displayed.
17 files changed:
client/src/main/java/com/vaadin/client/connectors/grid/DetailsManagerConnector.java
client/src/main/java/com/vaadin/client/connectors/grid/GridConnector.java
client/src/main/java/com/vaadin/client/widget/escalator/RowContainer.java
client/src/main/java/com/vaadin/client/widgets/Escalator.java
client/src/main/java/com/vaadin/client/widgets/Grid.java
server/src/main/java/com/vaadin/ui/Grid.java
shared/src/main/java/com/vaadin/shared/ui/grid/DetailsManagerState.java
uitest/src/main/java/com/vaadin/tests/components/treegrid/TreeGridBigDetailsManager.java
uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/EscalatorBasicClientFeaturesWidget.java
uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/EscalatorProxy.java
uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java
uitest/src/test/java/com/vaadin/tests/components/grid/GridScrolledToBottomTest.java
uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/GridColumnResizeModeTest.java
uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/escalator/EscalatorBasicsTest.java
uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/escalator/EscalatorSpacerTest.java
uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridBigDetailsManagerTest.java
uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridDetailsManagerTest.java