2
package org.crosswire.common.config.swing.fields;
4
import java.awt.FlowLayout;
6
import javax.swing.JComponent;
7
import javax.swing.JLabel;
8
import javax.swing.JPanel;
9
import javax.swing.JTextField;
11
import org.crosswire.common.config.swing.Field;
14
* A PropertyNumberField is a PropertyTextField that only
17
* <table border='1' cellPadding='3' cellSpacing='0' width="100%">
18
* <tr><td bgColor='white'class='TableRowColor'><font size='-7'>
19
* Distribution Licence:<br />
20
* Project B is free software; you can redistribute it
21
* and/or modify it under the terms of the GNU General Public License,
22
* version 2 as published by the Free Software Foundation.<br />
23
* This program is distributed in the hope that it will be useful,
24
* but WITHOUT ANY WARRANTY; without even the implied warranty of
25
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
* General Public License for more details.<br />
27
* The License is available on the internet
28
* <a href='http://www.gnu.org/copyleft/gpl.html'>here</a>, by writing to
29
* <i>Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
30
* MA 02111-1307, USA</i>, Or locally at the Licence link below.<br />
31
* The copyright to this program is held by it's authors.
32
* </font></td></tr></table>
33
* @see <a href='http://www.eireneh.com/servlets/Web'>Project B Home</a>
34
* @see <{docs.Licence}>
37
public class StyleField extends JPanel implements Field
40
* Create a new FileField
44
font = new FontButtonField();
45
font.setOptions("Font");
46
foreground = new ColorField();
47
foreground.setOptions("Fore");
48
background = new ColorField();
49
background.setOptions("Back");
52
iconfile.setColumns(8);
54
setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
55
add(new JLabel("Match: "));
57
add(new JLabel(" Style: "));
58
add(font.getComponent());
59
add(foreground.getComponent());
60
add(background.getComponent());
65
* This method does nothing because there is no configuring that this
66
* class requires other than the current value.
67
* @param obj The ignored paramter
69
public void setOptions(Object obj)
74
* Return a string version of the current value
75
* @return The current value
77
public String getValue()
79
return match.getText()+":"+
81
foreground.getValue()+":"+
82
background.getValue()+":"+
87
* Set the current value
88
* @param value The new text
90
public void setValue(String value)
92
if (value == null || value.equals(""))
96
foreground.setValue("");
97
background.setValue("");
102
int c1 = value.indexOf(":", 0);
103
int c2 = value.indexOf(":", c1+1);
104
int c3 = value.indexOf(":", c2+1);
105
int c4 = value.indexOf(":", c3+1);
107
if (c4 == -1) throw new IllegalArgumentException(value);
109
match.setText(value.substring(0, c1));
110
font.setValue(value.substring(c1+1, c2));
111
foreground.setValue(value.substring(c2+1, c3));
112
background.setValue(value.substring(c3+1, c4));
113
iconfile.setText(value.substring(c4+1));
117
* Get the actual component that we can add to a Panel.
118
* (This can well be this in an implementation).
120
public JComponent getComponent()
125
/** The match string */
126
private JTextField match = new JTextField();
129
private FontButtonField font;
131
/** The foreground color */
132
private ColorField foreground;
134
/** The background color */
135
private ColorField background;
138
private JTextField iconfile = new JTextField();