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 }