1
2 package org.freehep.graphicsio.exportchooser;
3
4 import java.awt.Component;
5 import java.awt.event.ItemEvent;
6 import java.awt.event.ItemListener;
7 import java.beans.PropertyChangeEvent;
8 import java.beans.PropertyChangeListener;
9 import java.util.Properties;
10
11 import javax.swing.JCheckBox;
12
13
14
15
16
17
18 public class OptionCheckBox extends JCheckBox implements Options {
19 protected boolean initialState;
20
21 protected String key;
22
23 public OptionCheckBox(Properties options, String key, String text) {
24 super(text, new Boolean(options.getProperty(key, "false"))
25 .booleanValue());
26 this.key = key;
27 initialState = isSelected();
28 }
29
30 public boolean applyChangedOptions(Properties options) {
31 if (isSelected() != initialState) {
32 options.setProperty(key, Boolean.toString(isSelected()));
33 return true;
34 }
35 return false;
36 }
37
38
39
40
41
42 public void enables(final Component c) {
43 if (c.isEnabled()) {
44 c.setEnabled(isSelected());
45
46
47 addItemListener(new ItemListener() {
48 public void itemStateChanged(ItemEvent e) {
49 c.setEnabled(isSelected());
50 }
51 });
52
53
54 addPropertyChangeListener("enabled", new PropertyChangeListener() {
55 public void propertyChange(PropertyChangeEvent e) {
56 if (e.getNewValue().equals(Boolean.TRUE)) {
57 c.setEnabled(isSelected());
58 } else {
59 c.setEnabled(false);
60 }
61 }
62 });
63 }
64 }
65
66
67
68
69
70 public void disables(final Component c) {
71 if (c.isEnabled()) {
72 c.setEnabled(!isSelected());
73
74
75 addItemListener(new ItemListener() {
76 public void itemStateChanged(ItemEvent e) {
77 c.setEnabled(!isSelected());
78 }
79 });
80
81
82 addPropertyChangeListener("enabled", new PropertyChangeListener() {
83 public void propertyChange(PropertyChangeEvent e) {
84 if (e.getNewValue().equals(Boolean.TRUE)) {
85 c.setEnabled(!isSelected());
86 } else {
87 c.setEnabled(false);
88 }
89 }
90 });
91 }
92 }
93
94
95
96
97
98 public void shows(final Component c) {
99 c.setVisible(isSelected());
100
101 addItemListener(new ItemListener() {
102 public void itemStateChanged(ItemEvent e) {
103 c.setVisible(isSelected());
104 }
105 });
106 }
107
108
109
110
111
112 public void hides(final Component c) {
113 c.setVisible(!isSelected());
114
115 addItemListener(new ItemListener() {
116 public void itemStateChanged(ItemEvent e) {
117 c.setVisible(!isSelected());
118 }
119 });
120 }
121 }