source: josm/trunk/src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java@ 12344

Last change on this file since 12344 was 9067, checked in by Don-vip, 8 years ago

sonar - Immutable Field

  • Property svn:eol-style set to native
File size: 2.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions;
3
4import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
5import static org.openstreetmap.josm.tools.I18n.tr;
6
7import java.awt.event.ActionEvent;
8import java.awt.event.KeyEvent;
9import java.awt.event.WindowAdapter;
10import java.awt.event.WindowEvent;
11import java.awt.event.WindowListener;
12
13import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager;
14import org.openstreetmap.josm.tools.Shortcut;
15
16/**
17 * This action toggles the visibility of the {@link ChangesetCacheManager} dialog.
18 * @since 2685
19 */
20public class ChangesetManagerToggleAction extends ToggleAction {
21 private final transient WindowListener changesetCacheManagerClosedHandler;
22
23 /**
24 * Constructs a new {@code ChangesetManagerToggleAction}.
25 */
26 public ChangesetManagerToggleAction() {
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 */
34 );
35 notifySelectedState();
36 changesetCacheManagerClosedHandler = new ChangesetCacheManagerClosedHandler();
37 putValue("help", ht("/Dialog/ChangesetManager"));
38 }
39
40 @Override
41 public void actionPerformed(ActionEvent e) {
42 toggleSelectedState(e);
43 notifySelectedState();
44 if (isSelected()) {
45 ChangesetCacheManager.getInstance().addWindowListener(changesetCacheManagerClosedHandler);
46 ChangesetCacheManager.getInstance().setVisible(true);
47 } else {
48 ChangesetCacheManager.getInstance().removeWindowListener(changesetCacheManagerClosedHandler);
49 ChangesetCacheManager.destroyInstance();
50 }
51 }
52
53 private class ChangesetCacheManagerClosedHandler extends WindowAdapter {
54 @Override
55 public void windowClosed(WindowEvent e) {
56 setSelected(false);
57 notifySelectedState();
58 ChangesetCacheManager.getInstance().removeWindowListener(changesetCacheManagerClosedHandler);
59 }
60 }
61}
Note: See TracBrowser for help on using the repository browser.