2
package org.crosswire.common.config.swing;
4
import javax.swing.DefaultComboBoxModel;
5
import javax.swing.JComboBox;
6
import javax.swing.JComponent;
8
import org.apache.log4j.Logger;
9
import org.crosswire.common.config.Choice;
10
import org.crosswire.common.config.MultipleChoice;
13
* Allow the user to choose from True/False.
15
* <p><table border='1' cellPadding='3' cellSpacing='0'>
16
* <tr><td bgColor='white' class='TableRowColor'><font size='-7'>
18
* Distribution Licence:<br />
19
* JSword is free software; you can redistribute it
20
* and/or modify it under the terms of the GNU General Public License,
21
* version 2 as published by the Free Software Foundation.<br />
22
* This program is distributed in the hope that it will be useful,
23
* but WITHOUT ANY WARRANTY; without even the implied warranty of
24
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25
* General Public License for more details.<br />
26
* The License is available on the internet
27
* <a href='http://www.gnu.org/copyleft/gpl.html'>here</a>, or by writing to:
28
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
29
* MA 02111-1307, USA<br />
30
* The copyright to this program is held by it's authors.
31
* </font></td></tr></table>
33
* @author Joe Walker [joe at eireneh dot com]
36
public class OptionsField extends JComboBox implements Field
39
* Give the values list (true/false) to the ComboBox
43
super(new String[] { "No Options Set" } );
47
* Some fields will need some extra info to display properly
48
* like the options in an options field. FieldMap calls this
49
* method with options provided by the choice.
50
* @param param The options provided by the Choice
52
public void setChoice(Choice param)
54
if (param instanceof MultipleChoice)
56
MultipleChoice mc = (MultipleChoice) param;
57
list = mc.getOptions();
61
log.warn("Unknown Choice type: "+param.getClass().getName());
62
list = new String[] { "ERROR" };
65
setModel(new DefaultComboBoxModel(list));
69
* Return a string for use in the properties file
70
* @return The current value
72
public String getValue()
74
return (String) getSelectedItem();
78
* Set the current value
79
* @param value The new text
81
public void setValue(String value)
83
for (int i=0; i<list.length; i++)
85
if (value.equals(list[i]))
87
setSelectedItem(list[i]);
92
log.warn("Illegal option setting: '"+value+"'. Using default");
93
setSelectedItem(list[0]);
97
* Get the actual component that we can add to a Panel.
98
* (This can well be this in an implementation).
100
public JComponent getComponent()
106
* Return the Choice that created us.
107
* @return Our source Choice
109
public Choice getChoice()
114
/** Our source Field */
115
private Choice Field = null;
118
private String[] list = null;
120
/** The log stream */
121
protected static Logger log = Logger.getLogger(OptionsField.class);