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 }