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

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

fix #13412 - Clean up DrawAction, add StrokeProperty (patch by michael2402) - gsoc-core

  • 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;
9import org.openstreetmap.josm.data.preferences.BooleanProperty;
10
11public class PreferenceToggleAction extends JosmAction implements PreferenceChangedListener {
12
13 private final JCheckBoxMenuItem checkbox;
14 private final BooleanProperty pref;
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.pref = new BooleanProperty(prefKey, prefDefault);
20 checkbox = new JCheckBoxMenuItem(this);
21 checkbox.setSelected(pref.get());
22 Main.pref.addWeakKeyPreferenceChangeListener(prefKey, this);
23 }
24
25 @Override
26 public void actionPerformed(ActionEvent e) {
27 pref.put(checkbox.isSelected());
28 }
29
30 /**
31 * Get the checkbox that can be used for this action. It can only be used at one place.
32 * @return The checkbox.
33 */
34 public JCheckBoxMenuItem getCheckbox() {
35 return checkbox;
36 }
37
38 @Override
39 public void preferenceChanged(Preferences.PreferenceChangeEvent e) {
40 checkbox.setSelected(pref.get());
41 }
42}
Note: See TracBrowser for help on using the repository browser.