-
Notifications
You must be signed in to change notification settings - Fork 729
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: Focus-activated shortcut listener in compatibility TextField (#1…
- Loading branch information
Showing
3 changed files
with
107 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
49 changes: 49 additions & 0 deletions
49
...t/src/main/java/com/vaadin/tests/components/textfield/CompatibilityTextFieldShortcut.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
package com.vaadin.tests.components.textfield; | ||
|
||
import com.vaadin.event.ShortcutAction; | ||
import com.vaadin.event.ShortcutListener; | ||
import com.vaadin.server.VaadinRequest; | ||
import com.vaadin.shared.Registration; | ||
import com.vaadin.tests.components.AbstractTestUI; | ||
import com.vaadin.ui.Button; | ||
import com.vaadin.ui.Label; | ||
import com.vaadin.ui.Notification; | ||
import com.vaadin.v7.ui.TextField; | ||
|
||
@SuppressWarnings("deprecation") | ||
public class CompatibilityTextFieldShortcut extends AbstractTestUI { | ||
|
||
Registration listenerRegistration; | ||
|
||
@Override | ||
protected void setup(VaadinRequest request) { | ||
TextField textField = new TextField("F8 shortcut when focused"); | ||
ShortcutListener c = new ShortcutListener("ShortcutForMAMedRemarks", | ||
ShortcutAction.KeyCode.F8, null) { | ||
|
||
@Override | ||
public void handleAction(Object sender, Object target) { | ||
Notification.show("Received F8: " + textField.getValue()); | ||
} | ||
}; | ||
|
||
textField.addFocusListener(e -> { | ||
listenerRegistration = textField.addShortcutListener(c); | ||
Label label = new Label("Focused"); | ||
label.addStyleName("focus-label"); | ||
addComponent(label); | ||
}); | ||
|
||
textField.addBlurListener(e -> { | ||
listenerRegistration.remove(); | ||
}); | ||
|
||
Label label = new Label( | ||
"F8 will have an effect only if the following component is focused."); | ||
Button button = new Button("focus"); | ||
button.addClickListener(event -> { | ||
textField.focus(); | ||
}); | ||
addComponents(label, textField, button); | ||
} | ||
} |
35 changes: 35 additions & 0 deletions
35
...c/test/java/com/vaadin/tests/components/textfield/CompatibilityTextFieldShortcutTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
package com.vaadin.tests.components.textfield; | ||
|
||
import static org.junit.Assert.assertEquals; | ||
|
||
import org.junit.Test; | ||
import org.openqa.selenium.By; | ||
import org.openqa.selenium.Keys; | ||
import org.openqa.selenium.WebElement; | ||
|
||
import com.vaadin.testbench.elements.ButtonElement; | ||
import com.vaadin.testbench.elements.NotificationElement; | ||
import com.vaadin.tests.tb3.SingleBrowserTest; | ||
|
||
public class CompatibilityTextFieldShortcutTest extends SingleBrowserTest { | ||
|
||
private static final String TEXTFIELD_VALUE = "input"; | ||
private static final String NOTIFICATION = "Received F8: " | ||
+ TEXTFIELD_VALUE; | ||
|
||
@Test | ||
public void focusAndPressF8() { | ||
openTestURL(); | ||
|
||
WebElement textFieldText = findElement(By.tagName("input")); | ||
$(ButtonElement.class).first().click(); | ||
|
||
waitForElementVisible(By.className("focus-label")); | ||
textFieldText.sendKeys(TEXTFIELD_VALUE); | ||
|
||
textFieldText.sendKeys(Keys.F8); | ||
|
||
assertEquals(NOTIFICATION, | ||
$(NotificationElement.class).first().getCaption()); | ||
} | ||
} |