summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Koivisto <markus@vaadin.com>2014-08-05 15:02:45 +0300
committerVaadin Code Review <review@vaadin.com>2014-08-05 13:22:58 +0000
commit251f248f426df40808d65ad8aa1c7a5e6edc16a6 (patch)
tree41cbd0a9bb4855007cde0a636318a09a1b587a54
parentdbe24759d5d7e7e3a5f32fa6b0aef629fe9ac331 (diff)
downloadvaadin-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
-rw-r--r--client/src/com/vaadin/client/ui/VScrollTable.java19
-rw-r--r--uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewport.java6
-rw-r--r--uitest/src/com/vaadin/tests/components/table/SelectAllConstantViewportTest.java57
-rw-r--r--uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java10
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