Changeset 6220 in josm for trunk/src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java
- Timestamp:
- 2013-09-07T15:50:39+02:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java
r6084 r6220 10 10 import java.awt.event.WindowEvent; 11 11 import java.awt.event.WindowListener; 12 import java.util.ArrayList;13 import java.util.List;14 15 import javax.swing.ButtonModel;16 12 17 13 import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager; 18 14 import org.openstreetmap.josm.tools.Shortcut; 15 19 16 /** 20 17 * This action toggles the visibility of the {@link ChangesetCacheManager} dialog. 21 * 18 * @since 2685 22 19 */ 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; 20 public class ChangesetManagerToggleAction extends ToggleAction { 28 21 private WindowListener changesetCacheManagerClosedHandler; 29 22 23 /** 24 * Constructs a new {@code ChangesetManagerToggleAction}. 25 */ 30 26 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 */ 39 34 ); 40 35 notifySelectedState(); … … 43 38 } 44 39 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(); 67 43 notifySelectedState(); 68 if ( selected) {44 if (isSelected()) { 69 45 ChangesetCacheManager.getInstance().addWindowListener(changesetCacheManagerClosedHandler); 70 46 ChangesetCacheManager.getInstance().setVisible(true); … … 75 51 } 76 52 77 @Override78 public void actionPerformed(ActionEvent e) {79 toggleSelectedState();80 }81 82 53 private class ChangesetCacheManagerClosedHandler extends WindowAdapter { 83 54 @Override 84 55 public void windowClosed(WindowEvent e) { 85 se lected = false;56 setSelected(false); 86 57 notifySelectedState(); 87 58 ChangesetCacheManager.getInstance().removeWindowListener(changesetCacheManagerClosedHandler);
Note:
See TracChangeset
for help on using the changeset viewer.