1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  package org.xnap.commons.settings;
21  
22  import java.awt.Font;
23  import java.util.StringTokenizer;
24  
25  /***
26   * Provides a setting for <code>Font</code> objects.
27   */
28  public class FontSetting extends AbstractSetting<Font> {
29  
30      public FontSetting(SettingResource backend, String key, Font defaultValue, Validator validator)
31      {
32      	super(backend, key, defaultValue, validator);
33      }
34  
35      public FontSetting(SettingResource backend, String key, Font defaultValue)
36      {
37      	super(backend, key, defaultValue, null);
38      }
39  
40      protected Font fromString(String value)
41  	{
42  		
43  		
44  		
45  
46  		StringTokenizer t = new StringTokenizer(value, ARRAY_SEPARATOR);
47  		if (t.countTokens() >= 3) {
48  			try {
49  				String name = t.nextToken();
50  				int style = Integer.parseInt(t.nextToken());
51  				int size = Integer.parseInt(t.nextToken());
52  
53  				return new Font(name, style, size);
54  			}
55  			catch (NumberFormatException e) {
56  			}
57  		}
58  
59  		return null;
60  	}
61  
62  	protected String toString(Font value)
63  	{
64  		Font font = (Font)value;
65  		
66  		
67  		StringBuilder sb = new StringBuilder();
68  		sb.append(font.getName());
69  		sb.append(ARRAY_SEPARATOR);
70  		sb.append(font.getStyle());
71  		sb.append(ARRAY_SEPARATOR);
72  		sb.append(font.getSize());
73  		return sb.toString();
74  	}
75  
76  }