From 206724e75b129bc69f56412159eaa69f5950295d Mon Sep 17 00:00:00 2001 From: Anna Koskinen Date: Fri, 8 May 2020 10:44:10 +0300 Subject: Fix indexing issue in Grid resize when scrolled to bottom. (#11984) Fixes #11893 --- .../java/com/vaadin/client/widgets/Escalator.java | 1 + .../components/grid/GridScrollDownResize.java | 34 ++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 uitest/src/main/java/com/vaadin/tests/components/grid/GridScrollDownResize.java diff --git a/client/src/main/java/com/vaadin/client/widgets/Escalator.java b/client/src/main/java/com/vaadin/client/widgets/Escalator.java index 1cd24297f3..bbc26b2437 100644 --- a/client/src/main/java/com/vaadin/client/widgets/Escalator.java +++ b/client/src/main/java/com/vaadin/client/widgets/Escalator.java @@ -3770,6 +3770,7 @@ public class Escalator extends Widget visualRowOrder.getLast()) + 1; moveAndUpdateEscalatorRows(Range.withOnly(0), visualRowOrder.size(), newLogicalIndex); + updateTopRowLogicalIndex(1); } } } diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridScrollDownResize.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridScrollDownResize.java new file mode 100644 index 0000000000..8a89347500 --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridScrollDownResize.java @@ -0,0 +1,34 @@ +package com.vaadin.tests.components.grid; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.tests.minitutorials.v7_4.GridExampleHelper; +import com.vaadin.ui.Grid; +import com.vaadin.ui.VerticalLayout; + +public class GridScrollDownResize extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + // container with at least 100 rows + final Grid grid = new Grid(GridExampleHelper.createContainer()); + grid.setSizeFull(); + addComponent(grid); + getLayout().setSizeFull(); + getLayout().setExpandRatio(grid, 2); + ((VerticalLayout) getLayout().getParent()).setSizeFull(); + } + + @Override + protected Integer getTicketNumber() { + return 11893; + }; + + @Override + protected String getTestDescription() { + return "Scrolling all the way down, resizing the browser window smaller " + + "so that one row gets completely hidden, and scrolling down " + + "again should keep the row contents consistent and in expected " + + "sequence."; + } +} -- cgit v1.2.3