1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.metis.preference;
18
19 import io.github.tonywasher.joceanus.oceanus.resource.OceanusBundleId;
20 import io.github.tonywasher.joceanus.oceanus.resource.OceanusBundleLoader;
21 import io.github.tonywasher.joceanus.metis.data.MetisDataResource;
22
23 import java.util.EnumMap;
24 import java.util.Map;
25 import java.util.ResourceBundle;
26
27
28
29
30 public enum MetisPreferenceResource implements OceanusBundleId {
31
32
33
34 TYPE_STRING("type.STRING"),
35
36
37
38
39 TYPE_INTEGER("type.INTEGER"),
40
41
42
43
44 TYPE_BOOLEAN("type.BOOLEAN"),
45
46
47
48
49 TYPE_DATE("type.DATE"),
50
51
52
53
54 TYPE_FILE("type.FILE"),
55
56
57
58
59 TYPE_DIRECTORY("type.DIRECTORY"),
60
61
62
63
64 TYPE_ENUM("type.ENUM"),
65
66
67
68
69 TYPE_COLOR("type.COLOR"),
70
71
72
73
74 UI_BUTTON_OK("ui.button.Ok"),
75
76
77
78
79 UI_BUTTON_RESET("ui.button.Reset"),
80
81
82
83
84 UI_TITLE_SAVE("ui.title.Save"),
85
86
87
88
89 UI_TITLE_SELECT("ui.title.Select"),
90
91
92
93
94 UI_TITLE_PREFERENCES("ui.title.Preferences"),
95
96
97
98
99 UI_TITLE_OPTIONS("ui.title.Options"),
100
101
102
103
104 UI_TITLE_COLOR("ui.title.Color"),
105
106
107
108
109 UI_PROMPT_COLOR("ui.prompt.Color"),
110
111
112
113
114 UI_LABEL_SET("ui.label.Set"),
115
116
117
118
119 UI_RANGE_MIN("ui.range.Minimum"),
120
121
122
123
124 UI_RANGE_MAX("ui.range.Maximum"),
125
126
127
128
129 UI_RANGE_ERROR("ui.range.Error"),
130
131
132
133
134 UI_ERROR_STORE("ui.error.Store"),
135
136
137
138
139 UI_HEADER_SELECT("ui.header.Select"),
140
141
142
143
144 SECPREF_BASEPREFNAME("secpref.baseprefname"),
145
146
147
148
149 SECPREF_PREFNAME("secpref.prefname"),
150
151
152
153
154 SECPREF_FACTORY("secpref.factory"),
155
156
157
158
159 SECPREF_KEYLEN("secpref.keylen"),
160
161
162
163
164 SECPREF_CIPHERSTEPS("secpref.ciphersteps"),
165
166
167
168
169 SECPREF_ITERATIONS("secpref.hashiterations"),
170
171
172
173
174 SECPREF_PHRASE("secpref.phrase"),
175
176
177
178
179 SECPREF_KEYSETS("secpref.keysets");
180
181
182
183
184 private static final Map<MetisPreferenceType, OceanusBundleId> PREF_MAP = buildPreferenceMap();
185
186
187
188
189 private static final OceanusBundleLoader LOADER = OceanusBundleLoader.getLoader(MetisDataResource.class.getCanonicalName(),
190 ResourceBundle::getBundle);
191
192
193
194
195 private final String theKeyName;
196
197
198
199
200 private String theValue;
201
202
203
204
205
206
207 MetisPreferenceResource(final String pKeyName) {
208 theKeyName = pKeyName;
209 }
210
211 @Override
212 public String getKeyName() {
213 return theKeyName;
214 }
215
216 @Override
217 public String getNameSpace() {
218 return "Metis.preference";
219 }
220
221 @Override
222 public String getValue() {
223
224 if (theValue == null) {
225
226 theValue = LOADER.getValue(this);
227 }
228
229
230 return theValue;
231 }
232
233
234
235
236
237
238 private static Map<MetisPreferenceType, OceanusBundleId> buildPreferenceMap() {
239
240 final Map<MetisPreferenceType, OceanusBundleId> myMap = new EnumMap<>(MetisPreferenceType.class);
241 myMap.put(MetisPreferenceType.STRING, TYPE_STRING);
242 myMap.put(MetisPreferenceType.INTEGER, TYPE_INTEGER);
243 myMap.put(MetisPreferenceType.BOOLEAN, TYPE_BOOLEAN);
244 myMap.put(MetisPreferenceType.DATE, TYPE_DATE);
245 myMap.put(MetisPreferenceType.FILE, TYPE_FILE);
246 myMap.put(MetisPreferenceType.DIRECTORY, TYPE_DIRECTORY);
247 myMap.put(MetisPreferenceType.ENUM, TYPE_ENUM);
248 myMap.put(MetisPreferenceType.COLOR, TYPE_COLOR);
249 return myMap;
250 }
251
252
253
254
255
256
257
258 public static OceanusBundleId getKeyForPrefType(final MetisPreferenceType pType) {
259 return OceanusBundleLoader.getKeyForEnum(PREF_MAP, pType);
260 }
261 }