1   /**
2    * Distribution License:
3    * JSword is free software; you can redistribute it and/or modify it under
4    * the terms of the GNU Lesser General Public License, version 2.1 as published by
5    * the Free Software Foundation. This program is distributed in the hope
6    * that it will be useful, but WITHOUT ANY WARRANTY; without even the
7    * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8    * See the GNU Lesser General Public License for more details.
9    *
10   * The License is available on the internet at:
11   *       http://www.gnu.org/copyleft/lgpl.html
12   * or by writing to:
13   *      Free Software Foundation, Inc.
14   *      59 Temple Place - Suite 330
15   *      Boston, MA 02111-1307, USA
16   *
17   * Copyright: 2005
18   *     The copyright to this program is held by it's authors.
19   *
20   * ID: $Id: FontField.java 1966 2009-10-30 01:15:14Z dmsmith $
21   */
22  package org.crosswire.common.config.swing;
23  
24  import javax.swing.BorderFactory;
25  import javax.swing.JComponent;
26  
27  import org.crosswire.common.config.Choice;
28  import org.crosswire.common.swing.FontChooser;
29  import org.crosswire.common.swing.GuiConvert;
30  import org.crosswire.common.swing.GuiUtil;
31  
32  /**
33   * A swing view of a FontChoice.
34   * 
35   * @see gnu.lgpl.License for license details.<br>
36   *      The copyright to this program is held by it's authors.
37   * @author Joe Walker [joe at eireneh dot com]
38   */
39  public class FontField extends FontChooser implements Field {
40      /**
41       *
42       */
43      public FontField() {
44          setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(), BorderFactory.createEmptyBorder(5, 5, 5, 5)));
45          GuiUtil.applyDefaultOrientation(this);
46  
47      }
48  
49      /**
50       * Some fields will need some extra info to display properly like the
51       * options in an options field. FieldMap calls this method with options
52       * provided by the choice.
53       * 
54       * @param param
55       *            The options provided by the Choice
56       */
57      public void setChoice(Choice param) {
58      }
59  
60      /**
61       * Return a string version of the current value
62       * 
63       * @return The current value
64       */
65      public String getValue() {
66          return GuiConvert.font2String(getStyle());
67      }
68  
69      /**
70       * Set the current value
71       * 
72       * @param value
73       *            The new text
74       */
75      public void setValue(String value) {
76          setStyle(GuiConvert.string2Font(value));
77      }
78  
79      /**
80       * Get the actual component that we can add to a Panel. (This can well be
81       * this in an implementation).
82       */
83      public JComponent getComponent() {
84          return this;
85      }
86  
87      /**
88       * Serialization ID
89       */
90      private static final long serialVersionUID = 3258411729237848625L;
91  }
92