diff options
author | cuong-phan <39257573+cuong-phan@users.noreply.github.com> | 2019-05-20 15:00:38 +0300 |
---|---|---|
committer | Sun Zhe <31067185+ZheSun88@users.noreply.github.com> | 2019-05-20 15:00:38 +0300 |
commit | 543a842e673f74b4053bcd22d1603bc3a84e6534 (patch) | |
tree | bfec61a0043cd3bf3600728a5de46883f62f1cc3 /client/src/main | |
parent | 994f39b9ed46519ca3bfdc8914291e364e44694f (diff) | |
download | vaadin-framework-543a842e673f74b4053bcd22d1603bc3a84e6534.tar.gz vaadin-framework-543a842e673f74b4053bcd22d1603bc3a84e6534.zip |
Fix Grid reordering when there are hidden columns
* Fix grid column reordering
Fix grid column reordering when there are hidden columns and footerRow.join
* Add test
Diffstat (limited to 'client/src/main')
-rwxr-xr-x | client/src/main/java/com/vaadin/client/widgets/Grid.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/client/src/main/java/com/vaadin/client/widgets/Grid.java b/client/src/main/java/com/vaadin/client/widgets/Grid.java index cb43bdd7d1..ae63749c5f 100755 --- a/client/src/main/java/com/vaadin/client/widgets/Grid.java +++ b/client/src/main/java/com/vaadin/client/widgets/Grid.java @@ -639,6 +639,16 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>, return null; } + protected int getSizeOfCellGroup(Column<?, ?> column) { + for (Entry<CELLTYPE, Set<Column<?, ?>>> entry : cellGroups + .entrySet()) { + if (entry.getValue().contains(column)) { + return entry.getValue().size(); + } + } + return 0; + } + void calculateColspans() { // Reset all cells for (CELLTYPE cell : this.cells.values()) { @@ -4697,7 +4707,8 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>, if (colspan <= 1) { continue; } - final int cellColumnRightIndex = cellColumnIndex + colspan; + final int cellColumnRightIndex = cellColumnIndex + row + .getSizeOfCellGroup(getColumn(cellColumnIndex)); final Range cellRange = Range.between(cellColumnIndex, cellColumnRightIndex); final boolean intersects = draggedCellRange |