From 81165cf0bdb7821f28aa40e9689969adfddb666f Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Wed, 7 Jan 2015 16:17:00 +0200 Subject: [PATCH] Change Grid default selection model to Single (#15435) Change-Id: Iba651c043fa47125b12d17371947042cbb03a589 --- .../src/com/vaadin/client/connectors/GridConnector.java | 7 +++---- client/src/com/vaadin/client/widgets/Grid.java | 2 +- server/src/com/vaadin/ui/Grid.java | 2 +- .../vaadin/tests/server/component/grid/GridSelection.java | 4 ++-- .../components/grid/GridAddAndRemoveDataOnInitTest.java | 8 ++++---- .../src/com/vaadin/tests/components/grid/GridAddRow.java | 2 ++ .../com/vaadin/tests/components/grid/GridColspans.java | 2 ++ .../components/grid/GridGeneratedPropertiesTest.java | 8 ++++---- .../tests/components/grid/GridHeaderStyleNames.java | 2 ++ 9 files changed, 21 insertions(+), 16 deletions(-) diff --git a/client/src/com/vaadin/client/connectors/GridConnector.java b/client/src/com/vaadin/client/connectors/GridConnector.java index 31bc2ac673..c3d46a4295 100644 --- a/client/src/com/vaadin/client/connectors/GridConnector.java +++ b/client/src/com/vaadin/client/connectors/GridConnector.java @@ -326,7 +326,7 @@ public class GridConnector extends AbstractHasComponentsConnector implements */ private Map columnIdToColumn = new HashMap(); - private AbstractRowHandleSelectionModel selectionModel = createSelectionModel(SharedSelectionMode.NONE); + private AbstractRowHandleSelectionModel selectionModel; private Set selectedKeys = new LinkedHashSet(); private List columnOrder = new ArrayList(); @@ -396,8 +396,6 @@ public class GridConnector extends AbstractHasComponentsConnector implements } }); - getWidget().setSelectionModel(selectionModel); - getWidget().addSelectionHandler(internalSelectionChangeHandler); getWidget().addSortHandler(new SortHandler() { @@ -751,7 +749,8 @@ public class GridConnector extends AbstractHasComponentsConnector implements } AbstractRowHandleSelectionModel model = createSelectionModel(mode); - if (!model.getClass().equals(selectionModel.getClass())) { + if (selectionModel == null + || !model.getClass().equals(selectionModel.getClass())) { selectionModel = model; getWidget().setSelectionModel(model); selectedKeys.clear(); diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java index 28cc1000ce..8c1b833acc 100644 --- a/client/src/com/vaadin/client/widgets/Grid.java +++ b/client/src/com/vaadin/client/widgets/Grid.java @@ -3398,7 +3398,7 @@ public class Grid extends ResizeComposite implements editor.setGrid(this); - setSelectionMode(SelectionMode.MULTI); + setSelectionMode(SelectionMode.SINGLE); escalator.addScrollHandler(new ScrollHandler() { @Override diff --git a/server/src/com/vaadin/ui/Grid.java b/server/src/com/vaadin/ui/Grid.java index 5b29d1f10b..d9f1b266a2 100644 --- a/server/src/com/vaadin/ui/Grid.java +++ b/server/src/com/vaadin/ui/Grid.java @@ -2578,7 +2578,7 @@ public class Grid extends AbstractComponent implements SelectionNotifier, * Grid initial setup */ private void initGrid() { - setSelectionMode(SelectionMode.MULTI); + setSelectionMode(SelectionMode.SINGLE); addSelectionListener(new SelectionListener() { @Override public void select(SelectionEvent event) { diff --git a/server/tests/src/com/vaadin/tests/server/component/grid/GridSelection.java b/server/tests/src/com/vaadin/tests/server/component/grid/GridSelection.java index 07a138c6ca..7f09677b50 100644 --- a/server/tests/src/com/vaadin/tests/server/component/grid/GridSelection.java +++ b/server/tests/src/com/vaadin/tests/server/component/grid/GridSelection.java @@ -99,8 +99,8 @@ public class GridSelection { } @Test - public void defaultSelectionModeIsMulti() { - assertTrue(grid.getSelectionModel() instanceof SelectionModel.Multi); + public void defaultSelectionModeIsSingle() { + assertTrue(grid.getSelectionModel() instanceof SelectionModel.Single); } @Test(expected = IllegalStateException.class) diff --git a/uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java b/uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java index 38ce49b622..ceaceb661d 100644 --- a/uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java @@ -31,14 +31,14 @@ public class GridAddAndRemoveDataOnInitTest extends MultiBrowserTest { openTestURL(); GridElement gridAdd = $(GridElement.class).first(); - if (!gridAdd.isElementPresent(By.vaadin("#cell[9][1]")) - || gridAdd.isElementPresent(By.vaadin("#cell[10][1]"))) { + if (!gridAdd.isElementPresent(By.vaadin("#cell[9][0]")) + || gridAdd.isElementPresent(By.vaadin("#cell[10][0]"))) { Assert.fail("Grid with added data contained incorrect rows"); } GridElement gridRemove = $(GridElement.class).get(1); - if (!gridRemove.isElementPresent(By.vaadin("#cell[4][1]")) - || gridRemove.isElementPresent(By.vaadin("#cell[5][1]"))) { + if (!gridRemove.isElementPresent(By.vaadin("#cell[4][0]")) + || gridRemove.isElementPresent(By.vaadin("#cell[5][0]"))) { Assert.fail("Grid with removed data contained incorrect rows"); } } diff --git a/uitest/src/com/vaadin/tests/components/grid/GridAddRow.java b/uitest/src/com/vaadin/tests/components/grid/GridAddRow.java index 74beb20914..fa2d7b5399 100644 --- a/uitest/src/com/vaadin/tests/components/grid/GridAddRow.java +++ b/uitest/src/com/vaadin/tests/components/grid/GridAddRow.java @@ -20,6 +20,7 @@ import com.vaadin.tests.components.AbstractTestUI; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Grid; +import com.vaadin.ui.Grid.SelectionMode; public class GridAddRow extends AbstractTestUI { @@ -27,6 +28,7 @@ public class GridAddRow extends AbstractTestUI { protected void setup(VaadinRequest request) { final Grid grid = new Grid(); + grid.setSelectionMode(SelectionMode.MULTI); grid.addColumn("firstName"); grid.addColumn("age", Integer.class); diff --git a/uitest/src/com/vaadin/tests/components/grid/GridColspans.java b/uitest/src/com/vaadin/tests/components/grid/GridColspans.java index f61a39a1f2..80337971b6 100644 --- a/uitest/src/com/vaadin/tests/components/grid/GridColspans.java +++ b/uitest/src/com/vaadin/tests/components/grid/GridColspans.java @@ -25,6 +25,7 @@ import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Grid; import com.vaadin.ui.Grid.FooterRow; import com.vaadin.ui.Grid.HeaderRow; +import com.vaadin.ui.Grid.SelectionMode; import com.vaadin.ui.renderer.NumberRenderer; public class GridColspans extends AbstractTestUI { @@ -48,6 +49,7 @@ public class GridColspans extends AbstractTestUI { grid = new Grid(dataSource); grid.setWidth("600px"); grid.getColumn("zipCode").setRenderer(new NumberRenderer()); + grid.setSelectionMode(SelectionMode.MULTI); addComponent(grid); HeaderRow row = grid.prependHeaderRow(); diff --git a/uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java b/uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java index af9aa3aad3..c71dd80360 100644 --- a/uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java @@ -34,7 +34,7 @@ public class GridGeneratedPropertiesTest extends MultiBrowserTest { openTestURL(); GridElement grid = $(GridElement.class).first(); assertEquals("Miles header wasn't present.", "miles", grid - .getHeaderCell(0, 3).getText().toLowerCase()); + .getHeaderCell(0, 2).getText().toLowerCase()); } @Test @@ -43,13 +43,13 @@ public class GridGeneratedPropertiesTest extends MultiBrowserTest { GridElement grid = $(GridElement.class).first(); // Overwritten foo property should not be sortable - GridCellElement fooHeader = grid.getHeaderCell(0, 1); + GridCellElement fooHeader = grid.getHeaderCell(0, 0); fooHeader.click(); assertFalse("Column foo was unexpectedly sorted.", fooHeader .getAttribute("class").contains("sort")); // Generated property miles is not sortable - GridCellElement milesHeader = grid.getHeaderCell(0, 3); + GridCellElement milesHeader = grid.getHeaderCell(0, 2); milesHeader.click(); assertFalse("Column miles was unexpectedly sorted.", milesHeader .getAttribute("class").contains("sort")); @@ -61,7 +61,7 @@ public class GridGeneratedPropertiesTest extends MultiBrowserTest { GridElement grid = $(GridElement.class).first(); // Generated property baz is sortable - GridCellElement bazHeader = grid.getHeaderCell(0, 4); + GridCellElement bazHeader = grid.getHeaderCell(0, 3); bazHeader.click(); assertTrue("Column baz was not sorted ascending", bazHeader .getAttribute("class").contains("sort-asc")); diff --git a/uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNames.java b/uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNames.java index 7c9eb66012..765cd01812 100644 --- a/uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNames.java +++ b/uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNames.java @@ -27,6 +27,7 @@ import com.vaadin.ui.Grid.FooterCell; import com.vaadin.ui.Grid.FooterRow; import com.vaadin.ui.Grid.HeaderCell; import com.vaadin.ui.Grid.HeaderRow; +import com.vaadin.ui.Grid.SelectionMode; @Theme("valo") public class GridHeaderStyleNames extends AbstractTestUIWithLog { @@ -40,6 +41,7 @@ public class GridHeaderStyleNames extends AbstractTestUIWithLog { @Override protected void setup(VaadinRequest request) { Grid grid = new Grid(); + grid.setSelectionMode(SelectionMode.MULTI); grid.setContainerDataSource(BeanItemContainerGenerator .createContainer(100)); -- 2.39.5