20 package net.sf.gridarta.utils;
22 import javax.swing.Action;
23 import javax.swing.Icon;
24 import javax.swing.KeyStroke;
25 import net.
sf.japi.swing.action.ActionBuilder;
26 import org.jetbrains.annotations.NotNull;
27 import org.jetbrains.annotations.Nullable;
39 private static final String
CATEGORY =
"Category";
74 if (
name !=
null && !
name.isEmpty()) {
78 final String shortDescription =
getStringValue(action, Action.SHORT_DESCRIPTION);
79 return shortDescription ==
null ?
getActionId(action) : shortDescription;
90 public static String
getActionId(@NotNull
final Action action) {
93 throw new IllegalArgumentException(
"action does not define an action ID: " + action);
105 final String longDescription =
getStringValue(action, Action.LONG_DESCRIPTION);
106 if (longDescription !=
null) {
107 return longDescription;
110 final String shortDescription =
getStringValue(action, Action.SHORT_DESCRIPTION);
111 return shortDescription ==
null ?
"" : shortDescription;
120 public static KeyStroke
getShortcut(@NotNull
final Action action) {
121 return getShortcut(action, Action.ACCELERATOR_KEY);
131 return getShortcut(action, ActionBuilder.ACCELERATOR_KEY_2);
141 private static KeyStroke
getShortcut(@NotNull
final Action action, @NotNull
final String key) {
142 final Object acceleratorKey = action.getValue(key);
143 return acceleratorKey instanceof KeyStroke ? (KeyStroke) acceleratorKey :
null;
151 public static void setActionShortcut(@NotNull
final Action action, @Nullable
final KeyStroke shortcut) {
152 action.putValue(Action.ACCELERATOR_KEY, shortcut);
164 final KeyStroke shortcut =
getShortcut(action, key);
165 return shortcut ==
null ?
NO_SHORTCUT : shortcut.toString();
175 final Object icon = action.getValue(Action.SMALL_ICON);
176 return icon instanceof Icon ? (Icon) icon :
null;
187 private static String
getStringValue(@NotNull
final Action action, @NotNull
final String key) {
188 final Object value = action.getValue(key);
189 return value instanceof String ? (String) value :
null;
204 public static Action
newAction(@NotNull
final ActionBuilder actionBuilder, @NotNull
final String category, @NotNull
final EditorAction editorAction, @NotNull
final String key) {
205 final Action action = actionBuilder.createAction(
true, key, editorAction);
206 action.putValue(
CATEGORY, category);
207 editorAction.setAction(action, key);
222 public static Action
newToggleAction(@NotNull
final ActionBuilder actionBuilder, @NotNull
final String category, @NotNull
final EditorAction editorAction, @NotNull
final String key) {
223 final Action action = actionBuilder.createToggle(
true, key, editorAction);
224 action.putValue(
CATEGORY, category);
225 editorAction.setAction(action, key);