package org.limewire.ui.swing.action;
import javax.swing.Action;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenuItem;
import org.limewire.ui.swing.components.PlainCheckBoxMenuItemUI;
import org.limewire.ui.swing.components.PlainMenuItemUI;
import org.limewire.ui.swing.util.GuiUtils;
/**
* Allows the text of the menu to have an ampersand to
* mark the mnemonic of its name.
*/
public abstract class MnemonicMenu extends javax.swing.JMenu {
public MnemonicMenu(String text) {
super(text);
}
@Override
public void setText(String text) {
int mnemonicKeyCode = GuiUtils.getMnemonicKeyCode(text);
text = GuiUtils.stripAmpersand(text);
if (mnemonicKeyCode != -1) {
setMnemonic(mnemonicKeyCode);
}
super.setText(text);
}
@Override
public JMenuItem add(Action action) {
JMenuItem item = super.add(action);
item.setUI(new PlainMenuItemUI());
return item;
}
@Override
public JMenuItem add(JMenuItem item) {
if (item instanceof JCheckBoxMenuItem) {
item.setUI(new PlainCheckBoxMenuItemUI());
}
JMenuItem itemReturned = super.add(item);
return itemReturned;
}
public abstract void createMenuItems();
}