X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fgui%2FFixedJMenuItem.java;h=c7a7b03c1364673631805b11896f5c1fc504bcf5;hb=c63257e8cc0ba1a5aca9364b22171abe7279d479;hp=0aad34aaa929c0cd211d3832a7dd7fcb2cd2cd67;hpb=e5c7a1609ef6d0878f98c3e8c2819bc1430f96f7;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/gui/FixedJMenuItem.java b/src/net/pterodactylus/jsite/gui/FixedJMenuItem.java index 0aad34a..c7a7b03 100644 --- a/src/net/pterodactylus/jsite/gui/FixedJMenuItem.java +++ b/src/net/pterodactylus/jsite/gui/FixedJMenuItem.java @@ -23,25 +23,23 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.Action; -import javax.swing.Icon; import javax.swing.JMenuItem; import javax.swing.KeyStroke; /** - * MenuItem which fixes the bug that when the {@link Action#ACCELERATOR_KEY} - * value of the action the JMenuItem is based upen is changed this change is not - * picked up (see bug * #4304129). - * + * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> - * @version $Id$ */ public class FixedJMenuItem extends JMenuItem { /** * Creates a new fixed menu item. - * + * * @param action * The action of the menu item */ @@ -53,42 +51,26 @@ public class FixedJMenuItem extends JMenuItem { * {@inheritDoc} */ @Override - protected PropertyChangeListener createActionPropertyChangeListener(Action a) { + protected PropertyChangeListener createActionPropertyChangeListener(Action action) { + final PropertyChangeListener originalPropertyChangeListener = super.createActionPropertyChangeListener(action); return new PropertyChangeListener() { /** * {@inheritDoc} */ public void propertyChange(PropertyChangeEvent propertyChangeEvent) { + originalPropertyChangeListener.propertyChange(propertyChangeEvent); String propertyName = propertyChangeEvent.getPropertyName(); JMenuItem menuItem = FixedJMenuItem.this; - if ("enabled".equals(propertyName)) { - Boolean enabledState = (Boolean) propertyChangeEvent.getNewValue(); - menuItem.setEnabled(enabledState.booleanValue()); - menuItem.repaint(); - } else if (Action.NAME.equals(propertyName)) { - String text = (String) propertyChangeEvent.getNewValue(); - menuItem.setText(text); - menuItem.repaint(); - } else if (Action.SHORT_DESCRIPTION.equals(propertyName)) { + if (Action.SHORT_DESCRIPTION.equals(propertyName)) { String shortDescription = (String) propertyChangeEvent.getNewValue(); menuItem.setToolTipText(shortDescription); menuItem.repaint(); - } else if (Action.MNEMONIC_KEY.equals(propertyName)) { - Integer mn = (Integer) propertyChangeEvent.getNewValue(); - menuItem.setMnemonic(mn.intValue()); - menuItem.invalidate(); - menuItem.repaint(); } else if (Action.ACCELERATOR_KEY.equals(propertyName)) { KeyStroke keyStroke = (KeyStroke) propertyChangeEvent.getNewValue(); menuItem.setAccelerator(keyStroke); menuItem.invalidate(); menuItem.repaint(); - } else if (Action.SMALL_ICON.equals(propertyName)) { - Icon icon = (Icon) propertyChangeEvent.getNewValue(); - menuItem.setIcon(icon); - menuItem.invalidate(); - menuItem.repaint(); } } };