src/macosx/classes/com/apple/laf/ScreenMenuItemCheckbox.java
Print this page
*** 34,44 ****
import com.apple.laf.AquaMenuItemUI.IndeterminateListener;
import sun.lwawt.macosx.*;
! class ScreenMenuItemCheckbox extends CheckboxMenuItem implements ActionListener, ComponentListener, ScreenMenuPropertyHandler, ItemListener {
JMenuItem fMenuItem;
MenuContainer fParent;
ScreenMenuItemCheckbox(final JCheckBoxMenuItem mi) {
super(mi.getText(), mi.getState());
--- 34,44 ----
import com.apple.laf.AquaMenuItemUI.IndeterminateListener;
import sun.lwawt.macosx.*;
! final class ScreenMenuItemCheckbox extends CheckboxMenuItem implements ActionListener, ComponentListener, ScreenMenuPropertyHandler, ItemListener {
JMenuItem fMenuItem;
MenuContainer fParent;
ScreenMenuItemCheckbox(final JCheckBoxMenuItem mi) {
super(mi.getText(), mi.getState());
*** 108,130 ****
fMenuItem.removeItemListener(this);
super.removeNotify();
}
! public void setAccelerator(final KeyStroke ks) {
! if (ks == null) {
! setShortcut(null);
! return;
}
! final MenuComponentPeer peer = getPeer();
! if (peer instanceof CMenuItem) {
! final CMenuItem ourPeer = (CMenuItem)peer;
! ourPeer.setLabel(fMenuItem.getText(), ks.getKeyChar(), ks.getKeyCode(), ks.getModifiers());
! } else {
! setShortcut(new MenuShortcut(ks.getKeyCode(), (ks.getModifiers() & InputEvent.SHIFT_MASK) != 0));
! }
}
public void actionPerformed(final ActionEvent e) {
fMenuItem.doClick(0); // This takes care of all the different events
}
--- 108,128 ----
fMenuItem.removeItemListener(this);
super.removeNotify();
}
! @Override
! public synchronized void setLabel(final String label) {
! ScreenMenuItem.syncLabelAndKS(this, label, fMenuItem.getAccelerator());
}
! @Override
! public void setAccelerator(final KeyStroke ks) {
! // We call CMenuItem.setLabel(..,..,..) directly and does not initialize
! // shortcut property. So shortcut property should not be used from the
! // peers code directly or indirectly.
! ScreenMenuItem.syncLabelAndKS(this, fMenuItem.getText(), ks);
}
public void actionPerformed(final ActionEvent e) {
fMenuItem.doClick(0); // This takes care of all the different events
}