diff options
author | Artur Signell <artur@vaadin.com> | 2016-10-14 22:11:59 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2016-11-16 07:31:08 +0000 |
commit | 1469891b6f0cb15bf9d684bdb35df8d9531c62f3 (patch) | |
tree | 7c88178a08d66f49c77b0cebfe8313e74a70dc8b | |
parent | 7535fbf6338be95f79910e4575d1e39796e5c701 (diff) | |
download | vaadin-framework-1469891b6f0cb15bf9d684bdb35df8d9531c62f3.tar.gz vaadin-framework-1469891b6f0cb15bf9d684bdb35df8d9531c62f3.zip |
Keep expand ratio for last row/column when reducing grid layout size (#20297)
Change-Id: Iff53a803596f4fc1eae8e4bfa307b9c1f4df961a
-rw-r--r-- | server/src/main/java/com/vaadin/ui/GridLayout.java | 7 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/tests/server/component/gridlayout/GridLayoutTest.java | 24 |
2 files changed, 27 insertions, 4 deletions
diff --git a/server/src/main/java/com/vaadin/ui/GridLayout.java b/server/src/main/java/com/vaadin/ui/GridLayout.java index 66195c4a6f..e0ad4408ca 100644 --- a/server/src/main/java/com/vaadin/ui/GridLayout.java +++ b/server/src/main/java/com/vaadin/ui/GridLayout.java @@ -36,8 +36,6 @@ import org.jsoup.select.Elements; import com.vaadin.event.LayoutEvents.LayoutClickEvent; import com.vaadin.event.LayoutEvents.LayoutClickListener; import com.vaadin.event.LayoutEvents.LayoutClickNotifier; -import com.vaadin.server.PaintException; -import com.vaadin.server.PaintTarget; import com.vaadin.shared.Connector; import com.vaadin.shared.EventId; import com.vaadin.shared.MouseEventDetails; @@ -447,6 +445,7 @@ public class GridLayout extends AbstractLayout return components.size(); } + @Override public void beforeClientResponse(boolean initial) { super.beforeClientResponse(initial); @@ -748,7 +747,7 @@ public class GridLayout extends AbstractLayout // Forget expands for removed columns if (columns < getColumns()) { - for (int i = columns - 1; i < getColumns(); i++) { + for (int i = columns; i < getColumns(); i++) { columnExpandRatio.remove(i); getState().explicitColRatios.remove(i); } @@ -798,7 +797,7 @@ public class GridLayout extends AbstractLayout } // Forget expands for removed rows if (rows < getRows()) { - for (int i = rows - 1; i < getRows(); i++) { + for (int i = rows; i < getRows(); i++) { rowExpandRatio.remove(i); getState().explicitRowRatios.remove(i); } diff --git a/server/src/test/java/com/vaadin/tests/server/component/gridlayout/GridLayoutTest.java b/server/src/test/java/com/vaadin/tests/server/component/gridlayout/GridLayoutTest.java index 1eabf2fb62..64b466612f 100644 --- a/server/src/test/java/com/vaadin/tests/server/component/gridlayout/GridLayoutTest.java +++ b/server/src/test/java/com/vaadin/tests/server/component/gridlayout/GridLayoutTest.java @@ -75,6 +75,30 @@ public class GridLayoutTest { assertOrder(grid, new int[] { 0, 1, 2, 3 }); } + @Test + public void removeRowsExpandRatiosPreserved() { + GridLayout gl = new GridLayout(3, 3); + gl.setRowExpandRatio(0, 0); + gl.setRowExpandRatio(1, 1); + gl.setRowExpandRatio(2, 2); + + gl.setRows(2); + assertEquals(0, gl.getRowExpandRatio(0), 0); + assertEquals(1, gl.getRowExpandRatio(1), 0); + } + + @Test + public void removeColsExpandRatiosPreserved() { + GridLayout gl = new GridLayout(3, 3); + gl.setColumnExpandRatio(0, 0); + gl.setColumnExpandRatio(1, 1); + gl.setColumnExpandRatio(2, 2); + + gl.setColumns(2); + assertEquals(0, gl.getColumnExpandRatio(0), 0); + assertEquals(1, gl.getColumnExpandRatio(1), 0); + } + private void assertContentPositions(GridLayout grid) { assertEquals(grid.getComponentCount(), children.length); int c = 0; |