All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.pepsoft.util.swing.BetterAction Maven / Gradle / Ivy

There is a newer version: 2.15.18
Show newest version
/*
 * 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