From 445e86c25a94a83ef1314f6c6e27d46dcb6780dc Mon Sep 17 00:00:00 2001 From: Teemu Pöntelin Date: Thu, 20 Mar 2014 00:15:45 +0200 Subject: Esc now closes the date popup even if focused on the time selectors (#12314) Change-Id: I68bc7922074c8c03957fbffce8a3d453726e8c1a --- .../src/com/vaadin/client/ui/VCalendarPanel.java | 8 +++++- .../components/datefield/PopupClosingWithEsc.java | 6 +++- .../datefield/PopupClosingWithEscTest.java | 33 ++++++++++++++++------ 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/client/src/com/vaadin/client/ui/VCalendarPanel.java b/client/src/com/vaadin/client/ui/VCalendarPanel.java index d1a94ffb9a..c6832226a4 100644 --- a/client/src/com/vaadin/client/ui/VCalendarPanel.java +++ b/client/src/com/vaadin/client/ui/VCalendarPanel.java @@ -1094,12 +1094,18 @@ public class VCalendarPanel extends FocusableFlexTable implements * The keydown/keypress event */ private void handleKeyPress(DomEvent event) { + // Special handling for events from time ListBoxes. if (time != null && time.getElement().isOrHasChild( (Node) event.getNativeEvent().getEventTarget().cast())) { int nativeKeyCode = event.getNativeEvent().getKeyCode(); if (nativeKeyCode == getSelectKey()) { - onSubmit(); // submit happens if enter key hit down on listboxes + onSubmit(); // submit if enter key hit down on listboxes + event.preventDefault(); + event.stopPropagation(); + } + if (nativeKeyCode == getCloseKey()) { + onCancel(); // cancel if ESC key hit down on listboxes event.preventDefault(); event.stopPropagation(); } diff --git a/uitest/src/com/vaadin/tests/components/datefield/PopupClosingWithEsc.java b/uitest/src/com/vaadin/tests/components/datefield/PopupClosingWithEsc.java index af43f143c1..f1422b28a3 100644 --- a/uitest/src/com/vaadin/tests/components/datefield/PopupClosingWithEsc.java +++ b/uitest/src/com/vaadin/tests/components/datefield/PopupClosingWithEsc.java @@ -25,6 +25,10 @@ public class PopupClosingWithEsc extends AbstractTestUI { @Override protected void setup(VaadinRequest request) { + DateField df0 = new DateField("Minute"); + df0.setId("minute"); + df0.setResolution(Resolution.MINUTE); + DateField df1 = new DateField("Day"); df1.setId("day"); df1.setResolution(Resolution.DAY); @@ -40,7 +44,7 @@ public class PopupClosingWithEsc extends AbstractTestUI { VerticalLayout layout = new VerticalLayout(); layout.setMargin(true); layout.setSpacing(true); - layout.addComponents(df1, df2, df3); + layout.addComponents(df0, df1, df2, df3); setContent(layout); } diff --git a/uitest/src/com/vaadin/tests/components/datefield/PopupClosingWithEscTest.java b/uitest/src/com/vaadin/tests/components/datefield/PopupClosingWithEscTest.java index 4c4b894b2b..834517e1bb 100644 --- a/uitest/src/com/vaadin/tests/components/datefield/PopupClosingWithEscTest.java +++ b/uitest/src/com/vaadin/tests/components/datefield/PopupClosingWithEscTest.java @@ -22,12 +22,26 @@ import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebElement; -import org.openqa.selenium.interactions.Actions; import com.vaadin.tests.tb3.MultiBrowserTest; public class PopupClosingWithEscTest extends MultiBrowserTest { + @Test + public void testPopupClosingFromTimeSelect() { + openTestURL(); + + openPopup("minute"); + assertTrue(isPopupVisible()); + + // Send ESC to the select element to simulate user being + // focused on the select while hitting the ESC key. + WebElement select = driver.findElement(By + .cssSelector(".v-datefield-popup select:first-child")); + select.sendKeys(Keys.ESCAPE); + assertFalse(isPopupVisible()); + } + @Test public void testPopupClosingDayResolution() { testPopupClosing("day"); @@ -46,22 +60,25 @@ public class PopupClosingWithEscTest extends MultiBrowserTest { private void testPopupClosing(String dateFieldId) { openTestURL(); - driver.findElement( - vaadinLocator("PID_S" + dateFieldId + "#popupButton")).click(); + openPopup(dateFieldId); assertTrue(isPopupVisible()); - sendEsc(); + sendEscToCalendarPanel(); assertFalse(isPopupVisible()); } + private void openPopup(String dateFieldId) { + driver.findElement( + vaadinLocator("PID_S" + dateFieldId + "#popupButton")).click(); + } + private boolean isPopupVisible() { return !(driver.findElements(By.cssSelector(".v-datefield-popup")) .isEmpty()); } - private void sendEsc() { - WebElement elem = driver.findElement(By - .cssSelector(".v-datefield-calendarpanel")); - new Actions(driver).sendKeys(elem, Keys.ESCAPE).perform(); + private void sendEscToCalendarPanel() { + driver.findElement(By.cssSelector(".v-datefield-calendarpanel")) + .sendKeys(Keys.ESCAPE); } } -- cgit v1.2.3 From e5fcf73a910e6886d40a08be9a64941f81e0f34f Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 25 Mar 2014 11:59:10 +0200 Subject: Remove flaky tests which does not give much additional info Change-Id: I63141cac25b612805458cae570917f757106251a --- uitest/src/com/vaadin/tests/push/PushReconnectTest.java | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/uitest/src/com/vaadin/tests/push/PushReconnectTest.java b/uitest/src/com/vaadin/tests/push/PushReconnectTest.java index 76a0b547da..325f2542d7 100644 --- a/uitest/src/com/vaadin/tests/push/PushReconnectTest.java +++ b/uitest/src/com/vaadin/tests/push/PushReconnectTest.java @@ -122,22 +122,6 @@ public abstract class PushReconnectTest extends MultiBrowserTestWithProxy { } } - @Test - public void testMultipleQuickReconnects() throws Exception { - setDebug(true); - openTestURL(); - startTimer(); - waitUntilServerCounterChanges(); - for (int i = 0; i < 50; i++) { - disconnectProxy(); - Thread.sleep(100); - connectProxy(); - Thread.sleep(100); - } - waitUntilServerCounterChanges(); - waitUntilServerCounterChanges(); - } - private int getClientCounter() { return BasicPushTest.getClientCounter(this); } -- cgit v1.2.3 From f72a5fb44f256eaeced2cbfb77900ce90f92e4c1 Mon Sep 17 00:00:00 2001 From: Maciej Przepióra Date: Mon, 24 Mar 2014 22:13:48 +0200 Subject: Return border sizes from border methods in MeasuredSize (#13494) Back ported from master Merge: no Change-Id: I9eee3cb897fcb00beb2b2877dd98337623e2cf5b --- client/src/com/vaadin/client/MeasuredSize.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/src/com/vaadin/client/MeasuredSize.java b/client/src/com/vaadin/client/MeasuredSize.java index 51da8570e6..bc6ef789d0 100644 --- a/client/src/com/vaadin/client/MeasuredSize.java +++ b/client/src/com/vaadin/client/MeasuredSize.java @@ -153,19 +153,19 @@ public class MeasuredSize { } public int getBorderTop() { - return margins[0]; + return borders[0]; } public int getBorderRight() { - return margins[1]; + return borders[1]; } public int getBorderBottom() { - return margins[2]; + return borders[2]; } public int getBorderLeft() { - return margins[3]; + return borders[3]; } public int getPaddingTop() { -- cgit v1.2.3 From ca73546d736dfb41d9b25a32282fff63791bffe1 Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Tue, 25 Mar 2014 13:21:27 +0200 Subject: Eliminate more .v-caption leaks in AbstractOrderedLayout (#13346) Change-Id: I641be48a53c53f584c42ae4f904975f447e9075a --- .../client/ui/orderedlayout/AbstractOrderedLayoutConnector.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java b/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java index ce73627c88..d9299f2621 100644 --- a/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java +++ b/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java @@ -258,6 +258,10 @@ public abstract class AbstractOrderedLayoutConnector extends } boolean enabled = child.isEnabled(); + if (slot.hasCaption() && null == caption) { + slot.setCaptionResizeListener(null); + } + slot.setCaption(caption, iconUrlString, styles, error, showError, required, enabled); -- cgit v1.2.3