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.util.Properties;
8
9 import javax.swing.AbstractButton;
10 import javax.swing.JComboBox;
11
12
13
14
15
16
17 public class OptionComboBox extends JComboBox implements Options {
18 protected String initialSelectedItem;
19
20 protected String key;
21
22 public OptionComboBox(Properties options, String key, String[] values) {
23 super(values);
24 setSelectedItem(options.getProperty(key, values[0]));
25 setEnabled(values.length > 1);
26 this.key = key;
27 initialSelectedItem = (String) getSelectedItem();
28 }
29
30 public boolean applyChangedOptions(Properties options) {
31 if (!getSelectedItem().equals(initialSelectedItem)) {
32 options.setProperty(key, (String) getSelectedItem());
33 return true;
34 }
35 return false;
36 }
37
38
39
40
41
42 public void enables(final String item, final Component c) {
43 if (c.isEnabled()) {
44 c.setEnabled(getSelectedItem().equals(item));
45
46 addItemListener(new ItemListener() {
47 public void itemStateChanged(ItemEvent e) {
48 c.setEnabled(getSelectedItem().equals(item));
49 }
50 });
51 }
52 }
53
54
55
56
57
58 public void shows(final String item, final Component c) {
59 c.setVisible(getSelectedItem().equals(item));
60
61 addItemListener(new ItemListener() {
62 public void itemStateChanged(ItemEvent e) {
63 c.setVisible(getSelectedItem().equals(item));
64 }
65 });
66 }
67
68
69
70
71
72 public void selects(final String item, final AbstractButton c) {
73 c.setSelected(getSelectedItem().equals(item));
74
75 addItemListener(new ItemListener() {
76 public void itemStateChanged(ItemEvent e) {
77 c.setSelected(getSelectedItem().equals(item));
78 }
79 });
80 }
81 }