diff options
author | Michael Forstner <michael.forstner@bsi-in.de> | 2018-12-10 13:03:52 +0100 |
---|---|---|
committer | Sun Zhe <31067185+ZheSun88@users.noreply.github.com> | 2018-12-10 14:03:52 +0200 |
commit | 5480d82bb8554d3980a55714c6128cfe1d63ec92 (patch) | |
tree | b2f9c2f05b1044d7e801d71387ed24004b237bc8 /server | |
parent | e7b721f3e81534957b27a3af656021a643530cdd (diff) | |
download | vaadin-framework-5480d82bb8554d3980a55714c6128cfe1d63ec92.tar.gz vaadin-framework-5480d82bb8554d3980a55714c6128cfe1d63ec92.zip |
Add missing FocusShortcutListener (#11289)
* Add missing FocusShortcutListener
Was removed from 8.0 and not readded.
Fixes #8297
* Update Release note for this change
Diffstat (limited to 'server')
-rw-r--r-- | server/src/main/java/com/vaadin/event/FocusShortcut.java | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/server/src/main/java/com/vaadin/event/FocusShortcut.java b/server/src/main/java/com/vaadin/event/FocusShortcut.java new file mode 100644 index 0000000000..84a994f47d --- /dev/null +++ b/server/src/main/java/com/vaadin/event/FocusShortcut.java @@ -0,0 +1,76 @@ +/* + * Copyright 2000-2018 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.event; + +import com.vaadin.ui.Component.Focusable; + +/** + * A ready-made {@link ShortcutListener} that focuses the given + * {@link Focusable} (usually a {@link Field}) when the keyboard shortcut is + * invoked. + * + * @author Vaadin Ltd + * @since + */ +public class FocusShortcut extends ShortcutListener { + protected Focusable focusable; + + /** + * Creates a keyboard shortcut for focusing the given {@link Focusable} + * using the shorthand notation defined in {@link ShortcutAction}. + * + * @param focusable + * to focused when the shortcut is invoked + * @param shorthandCaption + * caption with keycode and modifiers indicated + */ + public FocusShortcut(Focusable focusable, String shorthandCaption) { + super(shorthandCaption); + this.focusable = focusable; + } + + /** + * Creates a keyboard shortcut for focusing the given {@link Focusable}. + * + * @param focusable + * to focused when the shortcut is invoked + * @param keyCode + * keycode that invokes the shortcut + * @param modifiers + * modifiers required to invoke the shortcut + */ + public FocusShortcut(Focusable focusable, int keyCode, int... modifiers) { + super(null, keyCode, modifiers); + this.focusable = focusable; + } + + /** + * Creates a keyboard shortcut for focusing the given {@link Focusable}. + * + * @param focusable + * to focused when the shortcut is invoked + * @param keyCode + * keycode that invokes the shortcut + */ + public FocusShortcut(Focusable focusable, int keyCode) { + this(focusable, keyCode, null); + } + + @Override + public void handleAction(Object sender, Object target) { + focusable.focus(); + } +} |