Ver código fonte

Fix column width resize event firing when mode is SIMPLE (#10452)

tags/7.7.13
Adam Wagner 6 anos atrás
pai
commit
31fb84fc6f

+ 10
- 2
client/src/main/java/com/vaadin/client/widgets/Grid.java Ver arquivo

@@ -5888,9 +5888,17 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
@Override
public void onComplete() {
dragEnded();

col.setWidth(width);
fireEvent(new ColumnResizeEvent<T>(col));

// Need to wait for column width recalculation
// scheduled by setWidth() before firing the event
Scheduler.get().scheduleDeferred(
new ScheduledCommand() {
@Override
public void execute() {
fireEvent(new ColumnResizeEvent<T>(col));
}
});
}
};


+ 30
- 0
uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/GridColumnResizeModeTest.java Ver arquivo

@@ -23,6 +23,7 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;

import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.components.grid.basicfeatures.element.CustomGridElement;

@@ -74,4 +75,33 @@ public class GridColumnResizeModeTest extends GridBasicFeaturesTest {

}


@Test
public void testSimpleResizeModeMultipleDrag() throws Exception {
CustomGridElement grid = getGridElement();

List<WebElement> handles = grid
.findElements(By.className("v-grid-column-resize-handle"));
WebElement handle = handles.get(1);

GridCellElement cell = grid.getHeaderCell(0, 1);

int initialWidth = cell.getSize().getWidth();

selectMenuPath("Component", "Columns", "Simple resize mode");
sleep(250);

drag(handle, 100);
sleep(500);
Assert.assertEquals(initialWidth + 100, cell.getSize().getWidth());

drag(handle, -100);
sleep(500);
Assert.assertEquals(initialWidth, cell.getSize().getWidth());
}

private void drag(WebElement handle, int xOffset) {
new Actions(getDriver()).moveToElement(handle).clickAndHold()
.moveByOffset(xOffset, 0).release().perform();
}
}

Carregando…
Cancelar
Salvar