X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fgui%2FFixedJMenuItem.java;h=c7a7b03c1364673631805b11896f5c1fc504bcf5;hb=c63257e8cc0ba1a5aca9364b22171abe7279d479;hp=5f0940a0ac72b221c6e3ba0eca5ef798997c25a3;hpb=6c4d18e3242bda4df55d9f2207134acb5ef26fbb;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/gui/FixedJMenuItem.java b/src/net/pterodactylus/jsite/gui/FixedJMenuItem.java index 5f0940a..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,34 +51,22 @@ 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 (propertyChangeEvent.getPropertyName().equals(Action.NAME)) { - String text = (String) propertyChangeEvent.getNewValue(); - menuItem.setText(text); - menuItem.repaint(); - } else if (propertyName.equals("enabled")) { - Boolean enabledState = (Boolean) propertyChangeEvent.getNewValue(); - menuItem.setEnabled(enabledState.booleanValue()); - menuItem.repaint(); - } else if (propertyChangeEvent.getPropertyName().equals(Action.SMALL_ICON)) { - Icon icon = (Icon) propertyChangeEvent.getNewValue(); - menuItem.setIcon(icon); - menuItem.invalidate(); - menuItem.repaint(); - } else if (propertyChangeEvent.getPropertyName().equals(Action.MNEMONIC_KEY)) { - Integer mn = (Integer) propertyChangeEvent.getNewValue(); - menuItem.setMnemonic(mn.intValue()); - menuItem.invalidate(); + if (Action.SHORT_DESCRIPTION.equals(propertyName)) { + String shortDescription = (String) propertyChangeEvent.getNewValue(); + menuItem.setToolTipText(shortDescription); menuItem.repaint(); - } else if (propertyChangeEvent.getPropertyName().equals(Action.ACCELERATOR_KEY)) { + } else if (Action.ACCELERATOR_KEY.equals(propertyName)) { KeyStroke keyStroke = (KeyStroke) propertyChangeEvent.getNewValue(); menuItem.setAccelerator(keyStroke); menuItem.invalidate();