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

Last change on this file since 10809 was 7937, checked in by bastiK, 9 years ago

add subversion property svn:eol=native

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