private void addAlternativeShortcut(KeyCombination kc) { Action alternativeAction = null; for (Action action : getActions()) { // find last action with same shortcut if (kc.equals(action.getShortcutCombination())) { alternativeAction = action; } } if (alternativeAction != null) { addShortcut(alternativeAction.getId(), alternativeAction.getShortcutCombination()); } }
private void addShortcut(final String actionId, KeyCombination keyCombination) { if (!allowEnterShortcut && (keyCombination.getModifiers() == null || keyCombination.getModifiers().length == 0) && keyCombination.getKey() == KeyCombination.Key.ENTER) { return; } for (Action oldAction : getActions()) { if (keyCombination.equals(oldAction.getShortcutCombination())) { removeShortcut(oldAction); } } shortcuts.put(actionId, attachShortcut(actionId, keyCombination)); }
public void addAction(@Nullable Action oldAction, Action newAction) { KeyCombination newShortcut = newAction.getShortcutCombination(); if (newShortcut != null) { if (oldAction != null) { KeyCombination oldShortcut = oldAction.getShortcutCombination(); if (newShortcut.equals(oldShortcut)) { removeShortcut(oldAction); } else if (oldShortcut != null) { removeShortcut(oldAction); // find and assign alternative addAlternativeShortcut(oldShortcut); } } addShortcut(newAction.getId(), newShortcut); } else { if (oldAction != null) { KeyCombination oldShortcut = oldAction.getShortcutCombination(); if (oldShortcut != null) { removeShortcut(oldAction); // find and assign alternative addAlternativeShortcut(oldShortcut); } } } }