Change-Id: I6481bf6f429046166dd0502a62b22aea51f5a0bdtags/7.6.0.beta2
@@ -2846,6 +2846,18 @@ public class Grid<T> extends ResizeComposite implements | |||
}); | |||
selectAllCheckBox.setValue(selected); | |||
addHeaderClickHandler(new HeaderClickHandler() { | |||
@Override | |||
public void onClick(GridClickEvent event) { | |||
CellReference<?> targetCell = event.getTargetCell(); | |||
int defaultRowIndex = getHeader().getRows().indexOf(getDefaultHeaderRow()); | |||
if(targetCell.getColumnIndex() == 0 && targetCell.getRowIndex() == defaultRowIndex) { | |||
selectAllCheckBox.setValue(!selectAllCheckBox.getValue(), true); | |||
} | |||
} | |||
}); | |||
// Select all with space when "select all" cell is active | |||
addHeaderKeyUpHandler(new HeaderKeyUpHandler() { | |||
@Override |
@@ -0,0 +1,21 @@ | |||
package com.vaadin.tests.components.grid; | |||
import com.vaadin.annotations.Theme; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.Grid; | |||
@Theme("valo") | |||
public class GridSelectAllCell extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
Grid grid = new Grid(); | |||
grid.addColumn("foo", String.class); | |||
grid.addRow("bar"); | |||
grid.setSelectionMode(Grid.SelectionMode.MULTI); | |||
addComponent(grid); | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
package com.vaadin.tests.components.grid; | |||
import static org.hamcrest.MatcherAssert.assertThat; | |||
import static org.hamcrest.core.Is.is; | |||
import java.io.IOException; | |||
import org.junit.Test; | |||
import org.openqa.selenium.By; | |||
import org.openqa.selenium.WebElement; | |||
import org.openqa.selenium.interactions.Actions; | |||
import com.vaadin.testbench.elements.GridElement; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
public class GridSelectAllCellTest extends MultiBrowserTest { | |||
@Override | |||
public void setup() throws Exception { | |||
super.setup(); | |||
openTestURL(); | |||
} | |||
@Test | |||
public void selectAllCellCanBeClicked() throws IOException { | |||
GridElement.GridCellElement selectAllCell = $(GridElement.class).first().getHeaderCell(0, 0); | |||
new Actions(getDriver()).moveToElement(selectAllCell, 2, 2).click().perform(); | |||
WebElement selectAllCheckbox = selectAllCell.findElement(By.cssSelector("input")); | |||
assertThat(selectAllCheckbox.isSelected(), is(true)); | |||
} | |||
} |