Ignore:
Timestamp:
2013-09-07T15:50:39+02:00 (11 years ago)
Author:
Don-vip
Message:

refactor Toggle actions, use Action.SELECTED_KEY since we have switched to Java 6 long ago, javadoc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java

    r6084 r6220  
    1010import java.awt.event.WindowEvent;
    1111import java.awt.event.WindowListener;
    12 import java.util.ArrayList;
    13 import java.util.List;
    14 
    15 import javax.swing.ButtonModel;
    1612
    1713import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager;
    1814import org.openstreetmap.josm.tools.Shortcut;
     15
    1916/**
    2017 * This action toggles the visibility of the {@link ChangesetCacheManager} dialog.
    21  *
     18 * @since 2685
    2219 */
    23 public class ChangesetManagerToggleAction extends JosmAction {
    24     private final List<ButtonModel> buttonModels = new ArrayList<ButtonModel>();
    25     //FIXME: replace with property Action.SELECTED_KEY when migrating to
    26     // Java 6
    27     private boolean selected;
     20public class ChangesetManagerToggleAction extends ToggleAction {
    2821    private WindowListener changesetCacheManagerClosedHandler;
    2922
     23    /**
     24     * Constructs a new {@code ChangesetManagerToggleAction}.
     25     */
    3026    public ChangesetManagerToggleAction() {
    31         super(
    32                 tr("Changeset Manager"),
    33                 "dialogs/changeset/changesetmanager",
    34                 tr("Toggle visibility of Changeset Manager window"),
    35                 Shortcut.registerShortcut("menu:windows:changesetdialog",
    36                         tr("Toggle visibility of Changeset Manager window"),
    37                         KeyEvent.VK_C, Shortcut.ALT_CTRL),
    38                 true /* register shortcut */
     27        super(tr("Changeset Manager"),
     28              "dialogs/changeset/changesetmanager",
     29              tr("Toggle visibility of Changeset Manager window"),
     30              Shortcut.registerShortcut("menu:windows:changesetdialog",
     31                      tr("Toggle visibility of Changeset Manager window"),
     32                      KeyEvent.VK_C, Shortcut.ALT_CTRL),
     33              true /* register shortcut */
    3934        );
    4035        notifySelectedState();
     
    4338    }
    4439
    45     public void addButtonModel(ButtonModel model) {
    46         if (model != null && !buttonModels.contains(model)) {
    47             buttonModels.add(model);
    48         }
    49     }
    50 
    51     public void removeButtonModel(ButtonModel model) {
    52         if (model != null && buttonModels.contains(model)) {
    53             buttonModels.remove(model);
    54         }
    55     }
    56 
    57     protected void notifySelectedState() {
    58         for (ButtonModel model: buttonModels) {
    59             if (model.isSelected() != selected) {
    60                 model.setSelected(selected);
    61             }
    62         }
    63     }
    64 
    65     protected void toggleSelectedState() {
    66         selected = !selected;
     40    @Override
     41    public void actionPerformed(ActionEvent e) {
     42        toggleSelectedState();
    6743        notifySelectedState();
    68         if (selected) {
     44        if (isSelected()) {
    6945            ChangesetCacheManager.getInstance().addWindowListener(changesetCacheManagerClosedHandler);
    7046            ChangesetCacheManager.getInstance().setVisible(true);
     
    7551    }
    7652
    77     @Override
    78     public void actionPerformed(ActionEvent e) {
    79         toggleSelectedState();
    80     }
    81 
    8253    private class ChangesetCacheManagerClosedHandler extends WindowAdapter {
    8354        @Override
    8455        public void windowClosed(WindowEvent e) {
    85             selected = false;
     56            setSelected(false);
    8657            notifySelectedState();
    8758            ChangesetCacheManager.getInstance().removeWindowListener(changesetCacheManagerClosedHandler);
Note: See TracChangeset for help on using the changeset viewer.