Browse Source

Use correct column index when calculating min width during resize (#19833)

Change-Id: If7a7a5c1e5eff4bdac0f6e5943a9fac2ce98784a
tags/7.7.2
Artur Signell 7 years ago
parent
commit
b00c580ed7

+ 1
- 2
client/src/main/java/com/vaadin/client/widgets/Grid.java View File

@@ -3214,7 +3214,6 @@ public class Grid<T> extends ResizeComposite implements
private void calculate() {
isScheduled = false;
rescheduleCount = 0;

assert !dataIsBeingFetched : "Trying to calculate column widths even though data is still being fetched.";

if (columnsAreGuaranteedToBeWiderThanGrid()) {
@@ -5713,7 +5712,7 @@ public class Grid<T> extends ResizeComposite implements
initialWidth = col.getWidthActual();

minCellWidth = escalator
.getMinCellWidth(getColumns()
.getMinCellWidth(getVisibleColumns()
.indexOf(col));
for (Column<?, T> c : getVisibleColumns()) {
if (selectionColumn == c) {

+ 10
- 0
uitest/src/main/java/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeatures.java View File

@@ -1211,6 +1211,16 @@ public class GridBasicFeatures extends AbstractComponentTest<Grid> {

}
});
createBooleanAction("Toggle all column hidden state", "Columns", false,
new Command<Grid, Boolean>() {
@Override
public void execute(Grid c, Boolean value, Object data) {
for (Column col : grid.getColumns()) {
col.setHidden(!col.isHidden());
}
}
});

createBooleanAction("All columns resizable", "Columns", false,
new Command<Grid, Boolean>() {


+ 22
- 0
uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/server/GridColumnResizeTest.java View File

@@ -146,4 +146,26 @@ public class GridColumnResizeTest extends GridBasicFeaturesTest {
assertGreaterOrEqual("Cell got too small.", cell.getSize().getWidth(),
10);
}

@Test
public void testShrinkColumnToZeroWithHiddenColumn() {
openTestURL();
selectMenuPath("Component", "Columns",
"Toggle all column hidden state");
// Hides although already hidden
selectMenuPath("Component", "Columns", "Column 0", "Hidden");
// Shows
selectMenuPath("Component", "Columns", "Column 0", "Hidden");
// Hides although already hidden
selectMenuPath("Component", "Columns", "Column 2", "Hidden");
// Shows
selectMenuPath("Component", "Columns", "Column 2", "Hidden");
GridCellElement cell = getGridElement().getCell(0, 1);
dragResizeColumn(1, 0, -cell.getSize().getWidth());
assertGreaterOrEqual("Cell got too small.", cell.getSize().getWidth(),
10);
assertEquals(getGridElement().getCell(0, 0).getLocation().getY(),
getGridElement().getCell(0, 1).getLocation().getY());
}

}

Loading…
Cancel
Save