diff options
author | Markus Koivisto <markus@vaadin.com> | 2014-08-05 15:02:45 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2014-08-05 13:22:58 +0000 |
commit | 251f248f426df40808d65ad8aa1c7a5e6edc16a6 (patch) | |
tree | 41cbd0a9bb4855007cde0a636318a09a1b587a54 | |
parent | dbe24759d5d7e7e3a5f32fa6b0aef629fe9ac331 (diff) | |
download | vaadin-framework-251f248f426df40808d65ad8aa1c7a5e6edc16a6.tar.gz vaadin-framework-251f248f426df40808d65ad8aa1c7a5e6edc16a6.zip |
Revert "Keyboard shift-selection now works as expected in VScrollTable. (#14094)"
This reverts commit 441371a. The commit caused rows selected in a multiselect
table to no longer be focused, which caused a number of regressions.
Change-Id: I42d960cec9dfe24852b40a623f32e2b467704491
4 files changed, 14 insertions, 78 deletions
diff --git a/client/src/com/vaadin/client/ui/VScrollTable.java b/client/src/com/vaadin/client/ui/VScrollTable.java index 5e6207f53f..59645aa6d3 100644 --- a/client/src/com/vaadin/client/ui/VScrollTable.java +++ b/client/src/com/vaadin/client/ui/VScrollTable.java @@ -1093,17 +1093,9 @@ public class VScrollTable extends FlowPanel implements HasWidgets, /* * The focus is no longer on a selected row. Move * focus to the selected row. (#10522) - * - * Don't do this for multiselect (#13341). - * - * Checking the selection mode here instead of in - * setRowFocus allows keyboard shift+downarrow - * selection to work as expected. */ - if (isSingleSelectMode()) { - setRowFocus(row); - } + setRowFocus(row); } } if (selected != row.isSelected()) { @@ -7256,7 +7248,14 @@ public class VScrollTable extends FlowPanel implements HasWidgets, // Set new focused row focusedRow = row; - ensureRowIsVisible(row); + /* + * Don't scroll to the focused row when in multiselect mode. + * (#13341) + */ + + if (isSingleSelectMode()) { + ensureRowIsVisible(row); + } return true; } diff --git a/uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewport.java b/uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewport.java index 35ac63efe2..5a406eac48 100644 --- a/uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewport.java +++ b/uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewport.java @@ -65,7 +65,7 @@ public class SelectAllConstantViewport extends AbstractTestUIWithLog { table.addItem(new Object[] { new Integer(i) }, new Integer(i)); } - table.setCurrentPageFirstItemIndex(178); + table.setCurrentPageFirstItemIndex(185); final CssLayout layout = new CssLayout(); layout.addComponent(selectAllCheckbox); @@ -82,9 +82,7 @@ public class SelectAllConstantViewport extends AbstractTestUIWithLog { @Override protected String getTestDescription() { - return "The scroll position of a table with many items should remain constant if all items are " - + "selected. The scroll position should change if the user uses the keyboard to select " - + "multiple lines with shift+arrowkeys."; + return "The scroll position of a table with many items should remain constant if all items are selected."; } /* diff --git a/uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewportTest.java b/uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewportTest.java index 257efef6a2..0e7a7c08a4 100644 --- a/uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewportTest.java +++ b/uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewportTest.java @@ -15,20 +15,14 @@ */ package com.vaadin.tests.components.table; -import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; import java.io.IOException; -import java.util.List; import org.junit.Test; -import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; -import org.openqa.selenium.interactions.Actions; -import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.support.ui.ExpectedCondition; import com.vaadin.testbench.By; @@ -39,7 +33,7 @@ import com.vaadin.tests.tb3.MultiBrowserTest; public class SelectAllConstantViewportTest extends MultiBrowserTest { @Test - public void testViewportUnchangedwithMultiSel() throws IOException { + public void testViewportUnchanged() throws IOException { openTestURL(); CheckBoxElement checkbox = $(CheckBoxElement.class).first(); @@ -57,58 +51,11 @@ public class SelectAllConstantViewportTest extends MultiBrowserTest { int rowLocation = row.getLocation().getY(); - // use click x,y with non-zero offset to actually toggle the checkbox. - // (#13763) + // use click x,y with non-zero offset to actually toggle the checkbox. (#13763) checkbox.click(5, 5); int newRowLocation = row.getLocation().getY(); assertThat(newRowLocation, is(rowLocation)); } - - @Test - public void testViewportChangedwithKeyboardSel() throws IOException { - openTestURL(); - - WebElement cell = $(TableElement.class).first().getCell(190, 0); - final WebElement scrollPositionDisplay = getDriver().findElement( - By.className("v-table-scrollposition")); - waitUntilNot(new ExpectedCondition<Boolean>() { - - @Override - public Boolean apply(WebDriver input) { - return scrollPositionDisplay.isDisplayed(); - } - }, 10); - - int rowLocation = cell.getLocation().getY(); - - // select downwards with shift (#14094) - - cell.click(); - - final WebElement row = getDriver().findElement( - By.className("v-selected")); - - assertThat(row.getAttribute("class"), containsString("selected")); - - // for some reason phantomJS does not support keyboard actions - - Actions action = new Actions(getDriver()); - action.keyDown(Keys.SHIFT) - .sendKeys(Keys.ARROW_DOWN, Keys.ARROW_DOWN, Keys.ARROW_DOWN, - Keys.ARROW_DOWN, Keys.ARROW_DOWN, Keys.ARROW_DOWN, - Keys.ARROW_DOWN).keyUp(Keys.SHIFT).build().perform(); - - int newRowLocation = cell.getLocation().getY(); - - assertThat(newRowLocation, is(not(rowLocation))); - - } - - @Override - public List<DesiredCapabilities> getBrowsersToTest() { - // phantomJS does not support keyboard actions - return getBrowsersExcludingPhantomJS(); - } } diff --git a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java index ffa0b83dc2..ccbb6ca872 100644 --- a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java +++ b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java @@ -41,8 +41,7 @@ import org.openqa.selenium.remote.DesiredCapabilities; public abstract class MultiBrowserTest extends PrivateTB3Configuration { protected List<DesiredCapabilities> getBrowsersExcludingIE() { - List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>( - getAllBrowsers()); + List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(getAllBrowsers()); browsers.remove(Browser.IE8.getDesiredCapabilities()); browsers.remove(Browser.IE9.getDesiredCapabilities()); browsers.remove(Browser.IE10.getDesiredCapabilities()); @@ -51,13 +50,6 @@ public abstract class MultiBrowserTest extends PrivateTB3Configuration { return browsers; } - protected List<DesiredCapabilities> getBrowsersExcludingPhantomJS() { - List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>( - getAllBrowsers()); - browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities()); - return browsers; - } - public enum Browser { FIREFOX(BrowserUtil.firefox(24)), CHROME(BrowserUtil.chrome(33)), SAFARI( BrowserUtil.safari(7)), IE8(BrowserUtil.ie(8)), IE9(BrowserUtil |