source: josm/trunk/src/org/openstreetmap/josm/actions/PreferenceToggleAction.java@ 5508

Last change on this file since 5508 was 5092, checked in by simon04, 12 years ago

Toggle edit toolbar (in View menu or in popup menu)

File size: 1.3 KB
Line 
1package org.openstreetmap.josm.actions;
2
3import java.awt.event.ActionEvent;
4import javax.swing.JCheckBoxMenuItem;
5import org.openstreetmap.josm.Main;
6import org.openstreetmap.josm.data.Preferences;
7import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
8
9public class PreferenceToggleAction extends JosmAction implements PreferenceChangedListener {
10
11 private final JCheckBoxMenuItem checkbox;
12 private final String prefKey;
13 private final boolean prefDefault;
14
15 public PreferenceToggleAction(String name, String tooltip, String prefKey, boolean prefDefault) {
16 super(name, null, tooltip, null, false);
17 putValue("toolbar", "toggle-" + prefKey);
18 this.prefKey = prefKey;
19 this.prefDefault = prefDefault;
20 this.checkbox = new JCheckBoxMenuItem(this);
21 this.checkbox.setSelected(Main.pref.getBoolean(prefKey, prefDefault));
22 Main.pref.addPreferenceChangeListener(this);
23 }
24
25 @Override
26 public void actionPerformed(ActionEvent e) {
27 Main.pref.put(prefKey, checkbox.isSelected());
28 }
29
30 public JCheckBoxMenuItem getCheckbox() {
31 return checkbox;
32 }
33
34 @Override
35 public void preferenceChanged(Preferences.PreferenceChangeEvent e) {
36 if (prefKey.equals(e.getKey())) {
37 checkbox.setSelected(Main.pref.getBoolean(prefKey, prefDefault));
38 }
39 }
40}
Note: See TracBrowser for help on using the repository browser.