});
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
--- /dev/null
+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);
+ }
+}
--- /dev/null
+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));
+ }
+}
\ No newline at end of file