20 package net.sf.gridarta.gui.dialog.shortcuts;
22 import java.awt.Component;
23 import java.util.ArrayList;
24 import java.util.Arrays;
25 import java.util.Collection;
26 import java.util.Comparator;
27 import java.util.HashSet;
28 import java.util.Iterator;
29 import java.util.List;
30 import java.util.prefs.AbstractPreferences;
31 import java.util.prefs.BackingStoreException;
32 import java.util.prefs.Preferences;
33 import javax.swing.Action;
34 import javax.swing.ActionMap;
35 import javax.swing.KeyStroke;
40 import net.
sf.japi.swing.action.ActionBuilder;
41 import net.
sf.japi.swing.action.DummyAction;
42 import org.jetbrains.annotations.NotNull;
43 import org.jetbrains.annotations.Nullable;
102 for (
final Action action :
this) {
103 final Object acceleratorKey = action.getValue(Action.ACCELERATOR_KEY);
104 if (acceleratorKey !=
null) {
109 final Preferences commentPreferences =
new AbstractPreferences(
null,
"") {
112 protected void putSpi(
final String key,
final String value) {
113 throw new UnsupportedOperationException(
"unsupported operation: key=" + key +
", value=" + value);
118 protected String getSpi(@NotNull
final String key) {
133 protected void removeSpi(
final String key) {
134 throw new UnsupportedOperationException(
"unsupported operation: key=" + key);
138 protected void removeNodeSpi() {
139 throw new UnsupportedOperationException(
"unsupported operation");
143 protected String [] keysSpi() {
144 throw new UnsupportedOperationException(
"unsupported operation");
148 protected String[] childrenNamesSpi() {
149 throw new UnsupportedOperationException(
"unsupported operation");
153 protected AbstractPreferences childSpi(
final String
name) {
154 throw new UnsupportedOperationException(
"unsupported operation: name=" +
name);
158 protected void syncSpi() {
163 protected void flushSpi() {
170 for (
final Action action :
this) {
174 action.putValue(Action.ACCELERATOR_KEY,
null);
176 final Object acceleratorKey = KeyStroke.getKeyStroke(value);
177 if (acceleratorKey !=
null) {
178 action.putValue(Action.ACCELERATOR_KEY, acceleratorKey);
195 }
catch (
final BackingStoreException ignored) {
199 for (
final Action action :
this) {
203 if (acceleratorKey.equals(defaultAcceleratorKey)) {
224 for (
final Action action :
this) {
235 final List<Action> result =
new ArrayList<>();
237 for (
final Object key : actionMap.allKeys()) {
238 if (key instanceof String) {
239 final Action action = actionMap.get(key);
240 assert action !=
null;
247 return result.iterator();
256 if (action instanceof DummyAction) {
263 }
catch (
final IllegalArgumentException ignored) {