1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.gui.component;
21
22 import java.beans.PropertyChangeEvent;
23 import java.beans.PropertyChangeListener;
24
25 import javax.swing.JToggleButton;
26
27 import org.xnap.action.ToggleAction;
28 import org.xnap.gui.util.IconHelper;
29
30 /***
31 * This class provides a toolbar button with an appropriate sized icon.
32 */
33 public class XNapToggleButton extends JToggleButton
34 {
35
36
37
38
39
40
41
42 public XNapToggleButton(ToggleAction action)
43 {
44 super(action);
45
46 String filename = (String)action.getValue(IconHelper.XNAP_ICON);
47 setIcon(IconHelper.getButtonIcon(filename));
48
49 setSelected(action.isSelected());
50 action.addPropertyChangeListener(new SelectionListener());
51 }
52
53
54
55
56
57 private class SelectionListener implements PropertyChangeListener
58 {
59
60 public void propertyChange(PropertyChangeEvent e)
61 {
62 if (e.getPropertyName().equals("selected")) {
63 setSelected(((Boolean)e.getNewValue()).booleanValue());
64 }
65 else if (e.getPropertyName().equals(IconHelper.XNAP_ICON)) {
66 String filename = (String)e.getNewValue();
67 setIcon(IconHelper.getButtonIcon(filename));
68
69 }
70 }
71
72 }
73
74 }