source: josm/trunk/src/org/openstreetmap/josm/actions/ViewportFollowToggleAction.java@ 4700

Last change on this file since 4700 was 4700, checked in by stoecker, 13 years ago

adapt some more help links

File size: 2.1 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.event.ActionEvent;
7import java.awt.event.KeyEvent;
8import java.util.ArrayList;
9import java.util.List;
10
11import javax.swing.ButtonModel;
12
13import org.openstreetmap.josm.Main;
14import org.openstreetmap.josm.tools.Shortcut;
15
16public class ViewportFollowToggleAction extends JosmAction {
17 private final List<ButtonModel> buttonModels = new ArrayList<ButtonModel>();
18 private boolean selected;
19 public ViewportFollowToggleAction() {
20 super(
21 tr("Viewport Following"),
22 "viewport-follow",
23 tr("Enable/disable automatic moving of the map view to last placed node"),
24 Shortcut.registerShortcut("menu:view:viewportfollow", tr("Toggle Viewport Following"),KeyEvent.VK_F, Shortcut.GROUP_MENU, Shortcut.SHIFT_DEFAULT),
25 true /* register shortcut */
26 );
27 putValue("help", ht("/Action/ViewportFollowing"));
28 selected = false;
29 notifySelectedState();
30 }
31
32 public void addButtonModel(ButtonModel model) {
33 if (model != null && !buttonModels.contains(model)) {
34 buttonModels.add(model);
35 model.setSelected(selected);
36 }
37 }
38
39 public void removeButtonModel(ButtonModel model) {
40 if (model != null && buttonModels.contains(model)) {
41 buttonModels.remove(model);
42 }
43 }
44
45 protected void notifySelectedState() {
46 for (ButtonModel model: buttonModels) {
47 if (model.isSelected() != selected) {
48 model.setSelected(selected);
49 }
50 }
51 }
52
53 protected void toggleSelectedState() {
54 selected = !selected;
55 Main.map.mapView.viewportFollowing = selected;
56 notifySelectedState();
57 }
58 public void actionPerformed(ActionEvent e) {
59 toggleSelectedState();
60 }
61
62 @Override
63 protected void updateEnabledState() {
64 setEnabled(Main.map != null && Main.main.getEditLayer() != null);
65 }
66}
Note: See TracBrowser for help on using the repository browser.