]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix setting SelectionMode on application start (#13334)
authorTeemu Suo-Anttila <teemusa@vaadin.com>
Fri, 4 Jul 2014 11:37:48 +0000 (14:37 +0300)
committerTeemu Suo-Anttila <teemusa@vaadin.com>
Mon, 7 Jul 2014 07:21:35 +0000 (10:21 +0300)
Change-Id: I7993a1e7c0ecfc1f75adfe0c156cd41528fea329

client/src/com/vaadin/client/ui/grid/GridConnector.java
uitest/src/com/vaadin/tests/components/grid/GridBasicFeatures.java
uitest/src/com/vaadin/tests/components/grid/GridBasicFeaturesTest.java

index 9873ca3d2f5b92d9704558ae7e9515a2ba2a936d..9ba1e9f038992ee0bfe2e81d230db5b761c3af1e 100644 (file)
@@ -119,8 +119,8 @@ public class GridConnector extends AbstractComponentConnector {
 
             // find new deselections
             for (String key : selectedKeys) {
-                changed = true;
                 if (!stateKeys.contains(key)) {
+                    changed = true;
                     deselectByHandle(dataSource.getHandleByKey(key));
                 }
             }
@@ -203,7 +203,7 @@ public class GridConnector extends AbstractComponentConnector {
      * Maps a generated column id to a grid column instance
      */
     private Map<String, CustomGridColumn> columnIdToColumn = new HashMap<String, CustomGridColumn>();
-    private AbstractRowHandleSelectionModel<JSONObject> selectionModel = new SelectionModelMulti<JSONObject>();
+    private AbstractRowHandleSelectionModel<JSONObject> selectionModel = createSelectionModel(SharedSelectionMode.NONE);
     private RpcDataSource dataSource;
 
     private final RowKeyHelper rowKeyHelper = new RowKeyHelper();
@@ -495,7 +495,9 @@ public class GridConnector extends AbstractComponentConnector {
         if (!model.getClass().equals(selectionModel.getClass())) {
             selectionModel = model;
             getWidget().setSelectionModel(model);
+            rowKeyHelper.selectedKeys.clear();
         }
+
     }
 
     private Logger getLogger() {
index d7310d4264869b245395f0832ec6394a814e83c1..995188db5c07524473c54b9ff6381724767da455 100644 (file)
@@ -128,6 +128,8 @@ public class GridBasicFeatures extends AbstractComponentTest<Grid> {
             grid.getColumn("Column" + col).setWidth(100 + col * 50);
         }
 
+        grid.setSelectionMode(SelectionMode.NONE);
+
         createGridActions();
 
         createColumnActions();
@@ -165,7 +167,7 @@ public class GridBasicFeatures extends AbstractComponentTest<Grid> {
         selectionModes.put("single", SelectionMode.SINGLE);
         selectionModes.put("multi", SelectionMode.MULTI);
         selectionModes.put("none", SelectionMode.NONE);
-        createSelectAction("Selection mode", "State", selectionModes, "multi",
+        createSelectAction("Selection mode", "State", selectionModes, "none",
                 new Command<Grid, Grid.SelectionMode>() {
                     @Override
                     public void execute(Grid grid, SelectionMode selectionMode,
index 3dc8ac814f905af3615bbd20fbf880c8dc91cb54..2546def99087f6c150ed05434cab1e2b84a8330c 100644 (file)
@@ -306,6 +306,8 @@ public class GridBasicFeaturesTest extends MultiBrowserTest {
     public void testSelectOnOff() throws Exception {
         openTestURL();
 
+        setSelectionModelMulti();
+
         assertFalse("row shouldn't start out as selected",
                 isSelected(getRow(0)));
         toggleFirstRowSelection();
@@ -317,6 +319,9 @@ public class GridBasicFeaturesTest extends MultiBrowserTest {
     @Test
     public void testSelectOnScrollOffScroll() throws Exception {
         openTestURL();
+
+        setSelectionModelMulti();
+
         assertFalse("row shouldn't start out as selected",
                 isSelected(getRow(0)));
         toggleFirstRowSelection();
@@ -332,6 +337,9 @@ public class GridBasicFeaturesTest extends MultiBrowserTest {
     @Test
     public void testSelectScrollOnScrollOff() throws Exception {
         openTestURL();
+
+        setSelectionModelMulti();
+
         assertFalse("row shouldn't start out as selected",
                 isSelected(getRow(0)));
 
@@ -349,6 +357,9 @@ public class GridBasicFeaturesTest extends MultiBrowserTest {
     @Test
     public void testSelectScrollOnOffScroll() throws Exception {
         openTestURL();
+
+        setSelectionModelMulti();
+
         assertFalse("row shouldn't start out as selected",
                 isSelected(getRow(0)));
 
@@ -395,6 +406,10 @@ public class GridBasicFeaturesTest extends MultiBrowserTest {
         assertTrue(vscrollStyleName.contains(stylename + "-scroller-vertical"));
     }
 
+    private void setSelectionModelMulti() {
+        selectMenuPath("Component", "State", "Selection mode", "multi");
+    }
+
     private WebElement getBodyCellByRowAndColumn(int row, int column) {
         return getGridElement().getCell(row, column);
     }