VCF Keyboard Shortcut Manager Flow | Vaadin

A modern library for managing keyboard shortcuts in a Vaadin application.

Component Factory Keyboard Shortcut Manager for Vaadin 23

keyboard-shortcut-manager is A modern library for managing keyboard shortcuts in a Vaadin application.

KSM

Basic Usage

KeyboardShortcutManager keyboardShortcutManager = new KeyboardShortcutManager(this);
KeyboardShortcut[] shortcuts = new KeyboardShortcut[] {
    new KeyboardShortcut("", KeyboardShortcut.Actions.helpDialog, Key.CONTROL, Key.SHIFT, Key.SLASH),
    new KeyboardShortcut("", KeyboardShortcut.Actions.focusNextInvalidField, Key.ALT, Key.F8),
    new KeyboardShortcut("", KeyboardShortcut.Actions.focusPreviousInvalidField, Key.ALT, Key.SHIFT, Key.F8),
    new KeyboardShortcut("scope-element-1", KeyboardShortcut.Actions.clearAllFields, Key.CONTROL, Key.KEY_K),
    new KeyboardShortcut("focus-element", "scope-element-2", KeyboardShortcut.Actions.focusElement, Key.CONTROL, Key.KEY_F)
};

keyboardShortcutManager.addShortcut(shortcuts);
keyboardShortcutManager.subscribe();

How to run the demo?

mvn jetty:run -pl keyboard-shortcut-manager-flow-demo

After server startup, you'll be able find the demo at http://localhost:8080

License & Author

This Add-on is distributed under Apache 2. For license terms, see LICENSE.txt.

Component Factory Keyboard Shortcut Manager is written by Vaadin Ltd.

Setting up for development:

Clone the project in GitHub (or fork it if you plan on contributing):

git clone git@github.com:vaadin-component-factory/keyboard-shortcut-manager-flow.git

To install project to your maven repository run:

mvn install

Install

Link to this version
ExperimentalReleased 15 September 2022Apache License 2.0
Framework Support
Vaadin platform 20+
Install with
Release notes - Version 23.1.6
  • Fix FocusNextElement action to focus not only inputs but all focusable elements in the group.
  • Fix issue with multiple shortcuts on the same element trigging the element twice.

BREAKING CHANGE

  • Change all params that accept string ids to use any CSS selector, this is for consistency and more flexibility.