
org.pepsoft.util.swing.BetterAction Maven / Gradle / Ivy
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.pepsoft.util.swing;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.Icon;
import javax.swing.KeyStroke;
/**
*
* @author pepijn
*/
public abstract class BetterAction extends AbstractAction {
public BetterAction(String name, Icon icon) {
super(name, icon);
}
public BetterAction(String name) {
super(name);
}
public final String getName() {
return (String) getValue(NAME);
}
public final void setShortDescription(String shortDescription) {
StringBuilder sb = new StringBuilder();
sb.append(shortDescription);
KeyStroke accelerator = (KeyStroke) getValue(ACCELERATOR_KEY);
if (accelerator != null) {
sb.append(" (");
if ((accelerator.getModifiers() & InputEvent.CTRL_DOWN_MASK) != 0) {
sb.append("Ctrl+");
}
if ((accelerator.getModifiers() & InputEvent.META_DOWN_MASK) != 0) {
sb.append("⌘+");
}
if ((accelerator.getModifiers() & InputEvent.ALT_DOWN_MASK) != 0) {
sb.append("Alt+");
}
if ((accelerator.getModifiers() & InputEvent.ALT_GRAPH_DOWN_MASK) != 0) {
sb.append("AltGr+");
}
if ((accelerator.getModifiers() & InputEvent.SHIFT_DOWN_MASK) != 0) {
sb.append("Shift+");
}
int keyCode = accelerator.getKeyCode();
if (keyCode == KeyEvent.VK_ADD) {
sb.append('+');
} else if (keyCode == KeyEvent.VK_SUBTRACT) {
sb.append('-');
} else {
sb.append((char) keyCode);
}
sb.append(')');
}
putValue(SHORT_DESCRIPTION, sb.toString());
}
public final void setAcceleratorKey(KeyStroke acceleratorKey) {
putValue(ACCELERATOR_KEY, acceleratorKey);
}
public final KeyStroke getAcceleratorKey() {
return (KeyStroke) getValue(ACCELERATOR_KEY);
}
public final void setSelected(boolean selected) {
putValue(SELECTED_KEY, selected);
}
public final boolean isSelected() {
return Boolean.TRUE.equals(getValue(SELECTED_KEY));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy