Quellcode durchsuchen

Fix compatibility Grid column reorder of partially hidden joined cells. (#12427)

Adds the fix from #12386 to the drag source as well.

Fixes #12377
tags/8.15.0
Anna Koskinen vor 2 Jahren
Ursprung
Commit
2cbaa342d3
Es ist kein Account mit der E-Mail-Adresse des Committers verbunden

+ 5
- 2
compatibility-client/src/main/java/com/vaadin/v7/client/widgets/Grid.java Datei anzeigen

@Override @Override
public void onDrop() { public void onDrop() {
final int draggedColumnIndex = eventCell.getColumnIndex(); final int draggedColumnIndex = eventCell.getColumnIndex();
final int colspan = header.getRow(eventCell.getRowIndex())
.getCell(eventCell.getColumn()).getColspan();
final StaticRow<?> draggedCellRow = header
.getRow(eventCell.getRowIndex());
Set<Column<?, ?>> cellGroup = draggedCellRow
.getCellGroupForColumn(getColumn(draggedColumnIndex));
final int colspan = cellGroup == null ? 1 : cellGroup.size();
if (latestColumnDropIndex != draggedColumnIndex if (latestColumnDropIndex != draggedColumnIndex
&& latestColumnDropIndex != draggedColumnIndex + colspan) { && latestColumnDropIndex != draggedColumnIndex + colspan) {
List<Column<?, T>> columns = getColumns(); List<Column<?, T>> columns = getColumns();

+ 17
- 0
uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridReorderMergedTest.java Datei anzeigen

assertEquals("Unexpected column order,", "6", assertEquals("Unexpected column order,", "6",
grid.getHeaderCell(1, 1).getText()); grid.getHeaderCell(1, 1).getText());
} }

@Test
public void dragMergedReverse() {
openTestURL();
GridElement grid = $(GridElement.class).first();
GridCellElement headerCell0_0 = grid.getHeaderCell(0, 0);
GridCellElement headerCell0_4 = grid.getHeaderCell(0, 4);
new Actions(driver).clickAndHold(headerCell0_4)
.moveByOffset(-headerCell0_0.getSize().getWidth(),
headerCell0_0.getSize().getHeight() / 2)
.release().perform();

// ensure the second merged block got dragged over the first merged
// block entirely
assertEquals("Unexpected column order,", "6",
grid.getHeaderCell(1, 1).getText());
}
} }

Laden…
Abbrechen
Speichern