0
|
1 |
/*
|
|
2 |
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
|
|
3 |
* All rights reserved.
|
|
4 |
* This component and the accompanying materials are made available
|
|
5 |
* under the terms of "Eclipse Public License v1.0"
|
|
6 |
* which accompanies this distribution, and is available
|
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
|
8 |
*
|
|
9 |
* Initial Contributors:
|
|
10 |
* Nokia Corporation - initial contribution.
|
|
11 |
*
|
|
12 |
* Contributors:
|
|
13 |
*
|
|
14 |
* Description:
|
|
15 |
*
|
|
16 |
*/
|
|
17 |
|
|
18 |
package com.nokia.s60tools.creator.components.filetype;
|
|
19 |
|
|
20 |
import java.util.LinkedHashMap;
|
|
21 |
|
|
22 |
import com.nokia.s60tools.creator.components.AbstractValue;
|
|
23 |
import com.nokia.s60tools.creator.components.AbstractVariables;
|
|
24 |
|
|
25 |
/**
|
|
26 |
* Variables for file
|
|
27 |
*/
|
|
28 |
public class FileTypeVariables extends AbstractVariables {
|
|
29 |
|
|
30 |
|
|
31 |
/**
|
|
32 |
* UI text for "Encryption Type"
|
|
33 |
*/
|
|
34 |
public static final String ENCRYPTION_TYPE = "Encryption Type";
|
|
35 |
|
|
36 |
/**
|
|
37 |
* XML element "right"
|
|
38 |
*/
|
|
39 |
public static final String RIGHT_XML = "right";
|
|
40 |
//
|
|
41 |
//Constants for UI, privates because of prefixes (Play, Print...)
|
|
42 |
//
|
|
43 |
private static final String ENDTIME = "Endtime";
|
|
44 |
private static final String STARTTIME = "Starttime";
|
|
45 |
private static final String ACCUMULATED = "Accumulated";
|
|
46 |
private static final String INTERVAL = "Interval";
|
|
47 |
private static final String COUNT = "Count";
|
|
48 |
|
|
49 |
|
|
50 |
//
|
|
51 |
//constants for XML element names
|
|
52 |
//
|
|
53 |
public static final String COUNT_XML = "count";
|
|
54 |
public static final String INTERVAL_XML = "interval";
|
|
55 |
public static final String ENDTIME_XML = "endtime";
|
|
56 |
public static final String STARTTIME_XML = "starttime";
|
|
57 |
public static final String ACCUMULATED_XML = "accumulated";
|
|
58 |
public static final String ENCRYPTION_TYPE_XML = "encryption";
|
|
59 |
public static final String TYPE_XML = "type";
|
|
60 |
|
|
61 |
|
|
62 |
//
|
|
63 |
//Constants for print
|
|
64 |
//
|
|
65 |
public static final String PRINT_TYPE = "print";
|
|
66 |
public static final String PRINTINTERVAL = PRINT_TYPE + INTERVAL_XML;
|
|
67 |
public static final String PRINTENDTIME = PRINT_TYPE + ENDTIME_XML;
|
|
68 |
public static final String PRINTSTARTTIME = PRINT_TYPE + STARTTIME_XML;
|
|
69 |
public static final String PRINTCOUNT = PRINT_TYPE + COUNT_XML;
|
|
70 |
public static final String PRINTACCUMULATED = PRINT_TYPE + ACCUMULATED_XML;
|
|
71 |
|
|
72 |
public static final String [][] PRINT_KEYS = {{
|
|
73 |
PRINTCOUNT, PRINTINTERVAL, PRINTSTARTTIME, PRINTENDTIME, PRINTACCUMULATED
|
|
74 |
},{
|
|
75 |
COUNT_XML, INTERVAL_XML, STARTTIME_XML, ENDTIME_XML, ACCUMULATED_XML
|
|
76 |
}};
|
|
77 |
|
|
78 |
//
|
|
79 |
//Constants for execute
|
|
80 |
//
|
|
81 |
public static final String EXECUTE_TYPE = "execute";
|
|
82 |
public static final String EXECUTEINTERVAL = EXECUTE_TYPE + INTERVAL_XML;
|
|
83 |
public static final String EXECUTEENDTIME = EXECUTE_TYPE + ENDTIME_XML;
|
|
84 |
public static final String EXECUTESTARTTIME = EXECUTE_TYPE + STARTTIME_XML;
|
|
85 |
public static final String EXECUTECOUNT = EXECUTE_TYPE + COUNT_XML;
|
|
86 |
public static final String EXECUTEACCUMULATED = EXECUTE_TYPE + ACCUMULATED_XML;
|
|
87 |
public static final String [][] EXECUTE_KEYS = {{
|
|
88 |
EXECUTECOUNT, EXECUTEINTERVAL, EXECUTESTARTTIME, EXECUTEENDTIME, EXECUTEACCUMULATED
|
|
89 |
},{
|
|
90 |
COUNT_XML, INTERVAL_XML, STARTTIME_XML, ENDTIME_XML, ACCUMULATED_XML
|
|
91 |
}};
|
|
92 |
|
|
93 |
//
|
|
94 |
//Constants for display
|
|
95 |
//
|
|
96 |
public static final String DISPLAY_TYPE = "display";
|
|
97 |
public static final String DISPLAYINTERVAL = DISPLAY_TYPE + INTERVAL_XML;
|
|
98 |
public static final String DISPLAYENDTIME = DISPLAY_TYPE + ENDTIME_XML;
|
|
99 |
public static final String DISPLAYSTARTTIME = DISPLAY_TYPE + STARTTIME_XML;
|
|
100 |
public static final String DISPLAYCOUNT = DISPLAY_TYPE + COUNT_XML;
|
|
101 |
public static final String DISPLAYACCUMULATED = DISPLAY_TYPE + ACCUMULATED_XML;
|
|
102 |
public static final String [][] DISPLAY_KEYS = {{
|
|
103 |
DISPLAYCOUNT, DISPLAYINTERVAL, DISPLAYSTARTTIME, DISPLAYENDTIME, DISPLAYACCUMULATED
|
|
104 |
},{
|
|
105 |
COUNT_XML, INTERVAL_XML, STARTTIME_XML, ENDTIME_XML, ACCUMULATED_XML
|
|
106 |
}};
|
|
107 |
|
|
108 |
//
|
|
109 |
//Constants for play
|
|
110 |
//
|
|
111 |
public static final String PLAY_TYPE = "play";
|
|
112 |
public static final String PLAYINTERVAL = PLAY_TYPE + INTERVAL_XML;
|
|
113 |
public static final String PLAYENDTIME = PLAY_TYPE + ENDTIME_XML;
|
|
114 |
public static final String PLAYSTARTTIME = PLAY_TYPE + STARTTIME_XML;
|
|
115 |
public static final String PLAYCOUNT = PLAY_TYPE + COUNT_XML;
|
|
116 |
public static final String PLAYACCUMULATED = PLAY_TYPE + ACCUMULATED_XML;
|
|
117 |
public static final String [][] PLAY_KEYS = {{
|
|
118 |
PLAYCOUNT, PLAYINTERVAL, PLAYSTARTTIME, PLAYENDTIME, PLAYACCUMULATED
|
|
119 |
},{
|
|
120 |
COUNT_XML, INTERVAL_XML, STARTTIME_XML, ENDTIME_XML, ACCUMULATED_XML
|
|
121 |
}};
|
|
122 |
|
|
123 |
|
|
124 |
/**
|
|
125 |
* Prefix for "DRM-CD"
|
|
126 |
*/
|
|
127 |
public static final String DRM_CD = "DRM-CD";
|
|
128 |
/**
|
|
129 |
* Prefix for "DRM-FL"
|
|
130 |
*/
|
|
131 |
public static final String DRM_FL = "DRM-FL";
|
|
132 |
|
|
133 |
//
|
|
134 |
// Prefixes for DRM-CD variables
|
|
135 |
//
|
|
136 |
private static final String DRM_CD_PRINT = DRM_CD + " Print ";
|
|
137 |
private static final String DRM_CD_EXECUTE = DRM_CD + " Execute ";
|
|
138 |
private static final String DRM_CD_DISPLAY = DRM_CD + " Display ";
|
|
139 |
private static final String DRM_CD_PLAY = DRM_CD + " Play ";
|
|
140 |
|
|
141 |
public static final String DURATIONS_HELP_TEXT = "For '" +ACCUMULATED + "' and '" +INTERVAL +"' -fields use format: "
|
|
142 |
+"P[n]Y[n]M[n]DT[n]H[n]M[n]S. Where P is start point for duration, Y stands for year, M for month, D for day, "
|
|
143 |
+"T is time part start point, H stands for hour, M for minute and S for second. "
|
|
144 |
+" E.g. P1Y2M3DT4H5M6S.";
|
|
145 |
|
|
146 |
|
|
147 |
private static FileTypeVariables instance;
|
|
148 |
|
|
149 |
/**
|
|
150 |
* Get Singleton instance of variables
|
|
151 |
* @return
|
|
152 |
*/
|
|
153 |
public static FileTypeVariables getInstance() {
|
|
154 |
|
|
155 |
if(instance == null){
|
|
156 |
instance = new FileTypeVariables();
|
|
157 |
}
|
|
158 |
|
|
159 |
return instance;
|
|
160 |
}
|
|
161 |
|
|
162 |
private FileTypeVariables(){
|
|
163 |
init();
|
|
164 |
initFixedValues();
|
|
165 |
initMaxOccurValues();
|
|
166 |
}
|
|
167 |
|
|
168 |
public static final String TYPE = "Type";
|
|
169 |
public static final String DIR = "Directory";
|
|
170 |
public static final String [] ALL_FILE_TYPES_AS_COMMA_SEPARATED_STRING = {"3GPP-70kB", "AAC-100kB", "AMR-20kB", "XLS-15kB", "GIF-2kB", "JPEG-200kB", "JPEG-25kB", "JPEG-500kB", "MIDI-10kB", "MP3-250kB", "PNG-15kB", "PPT-40kB", "RM-95kB", "RNG-1kB", "TXT-10kB", "TXT-70kB", "WAV-20kB", "DOC-20kB", "SWF-15kB", "JAD-1kB", "JAR-10kB", "TIF-25kB", "MXMF-40kB", "BMP-25kB", "JP2-65kB", "SVG-15kB", "HTML-20kB", "VCF-1kB", "VCS-1kB", "MP4-200kB", "SISX-10kB", "RAM-1kB", "WMV-200kB", "WMA-50kB"};
|
|
171 |
public static final String [] ALL_PICTURE_FILE_TYPES_AS_COMMA_SEPARATED_STRING = {"GIF-2kB", "JPEG-200kB", "JPEG-25kB", "JPEG-500kB", "PNG-15kB", "TIF-25kB", "BMP-25kB", "JP2-65kB", "SVG-15kB"};
|
|
172 |
|
|
173 |
private void init() {
|
|
174 |
|
|
175 |
items = new LinkedHashMap<String, String>(4);
|
|
176 |
items.put(TYPE_XML, TYPE);
|
|
177 |
items.put("directory", DIR);
|
|
178 |
|
|
179 |
items.put(ENCRYPTION_TYPE_XML, ENCRYPTION_TYPE);
|
|
180 |
|
|
181 |
items.put(PLAYCOUNT, DRM_CD_PLAY + COUNT);
|
|
182 |
items.put(PLAYSTARTTIME, DRM_CD_PLAY + STARTTIME);
|
|
183 |
items.put(PLAYENDTIME, DRM_CD_PLAY + ENDTIME);
|
|
184 |
items.put(PLAYINTERVAL, DRM_CD_PLAY + INTERVAL);
|
|
185 |
items.put(PLAYACCUMULATED, DRM_CD_PLAY + ACCUMULATED);
|
|
186 |
|
|
187 |
items.put(DISPLAYCOUNT, DRM_CD_DISPLAY + COUNT);
|
|
188 |
items.put(DISPLAYSTARTTIME, DRM_CD_DISPLAY + STARTTIME);
|
|
189 |
items.put(DISPLAYENDTIME, DRM_CD_DISPLAY + ENDTIME);
|
|
190 |
items.put(DISPLAYINTERVAL, DRM_CD_DISPLAY + INTERVAL);
|
|
191 |
items.put(DISPLAYACCUMULATED, DRM_CD_DISPLAY + ACCUMULATED);
|
|
192 |
|
|
193 |
items.put(EXECUTECOUNT, DRM_CD_EXECUTE + COUNT);
|
|
194 |
items.put(EXECUTESTARTTIME, DRM_CD_EXECUTE + STARTTIME);
|
|
195 |
items.put(EXECUTEENDTIME, DRM_CD_EXECUTE + ENDTIME);
|
|
196 |
items.put(EXECUTEINTERVAL, DRM_CD_EXECUTE + INTERVAL);
|
|
197 |
items.put(EXECUTEACCUMULATED, DRM_CD_EXECUTE + ACCUMULATED);
|
|
198 |
|
|
199 |
items.put(PRINTCOUNT, DRM_CD_PRINT + COUNT);
|
|
200 |
items.put(PRINTSTARTTIME, DRM_CD_PRINT + STARTTIME);
|
|
201 |
items.put(PRINTENDTIME, DRM_CD_PRINT + ENDTIME);
|
|
202 |
items.put(PRINTINTERVAL, DRM_CD_PRINT + INTERVAL);
|
|
203 |
items.put(PRINTACCUMULATED, DRM_CD_PRINT + ACCUMULATED);
|
|
204 |
|
|
205 |
|
|
206 |
additionalItems = new LinkedHashMap<String, String>(4);
|
|
207 |
additionalItems.put(COUNT_XML, COUNT_XML);
|
|
208 |
additionalItems.put(INTERVAL_XML, INTERVAL_XML);
|
|
209 |
additionalItems.put(ENDTIME_XML, ENDTIME_XML);
|
|
210 |
additionalItems.put(STARTTIME_XML, STARTTIME_XML);
|
|
211 |
additionalItems.put(ACCUMULATED_XML, ACCUMULATED_XML);
|
|
212 |
additionalItems.put(RIGHT_XML, RIGHT_XML);
|
|
213 |
|
|
214 |
}
|
|
215 |
|
|
216 |
/**
|
|
217 |
* Inits Max Occur valus for items
|
|
218 |
*/
|
|
219 |
private void initMaxOccurValues(){
|
|
220 |
maxOccur = new LinkedHashMap<String, Integer>(4);
|
|
221 |
|
|
222 |
Integer integerOne = new Integer (1);
|
|
223 |
maxOccur.put(TYPE, integerOne );//Should it be able to add more than one file? If So, also S60 side must be changed.
|
|
224 |
maxOccur.put(DIR, integerOne );
|
|
225 |
maxOccur.put(ENCRYPTION_TYPE, integerOne );
|
|
226 |
|
|
227 |
maxOccur.put( DRM_CD_PLAY + COUNT, integerOne );
|
|
228 |
maxOccur.put( DRM_CD_PLAY + STARTTIME, integerOne );
|
|
229 |
maxOccur.put( DRM_CD_PLAY + ENDTIME, integerOne );
|
|
230 |
maxOccur.put( DRM_CD_PLAY + INTERVAL, integerOne );
|
|
231 |
maxOccur.put( DRM_CD_PLAY + ACCUMULATED, integerOne );
|
|
232 |
|
|
233 |
maxOccur.put( DRM_CD_DISPLAY + COUNT, integerOne );
|
|
234 |
maxOccur.put( DRM_CD_DISPLAY + STARTTIME, integerOne );
|
|
235 |
maxOccur.put( DRM_CD_DISPLAY + ENDTIME, integerOne );
|
|
236 |
maxOccur.put( DRM_CD_DISPLAY + INTERVAL, integerOne );
|
|
237 |
maxOccur.put( DRM_CD_DISPLAY + ACCUMULATED, integerOne );
|
|
238 |
|
|
239 |
maxOccur.put( DRM_CD_EXECUTE + COUNT, integerOne );
|
|
240 |
maxOccur.put( DRM_CD_EXECUTE + STARTTIME, integerOne );
|
|
241 |
maxOccur.put( DRM_CD_EXECUTE + ENDTIME, integerOne );
|
|
242 |
maxOccur.put( DRM_CD_EXECUTE + INTERVAL, integerOne );
|
|
243 |
maxOccur.put( DRM_CD_EXECUTE + ACCUMULATED, integerOne );
|
|
244 |
|
|
245 |
maxOccur.put( DRM_CD_PRINT + COUNT, integerOne );
|
|
246 |
maxOccur.put( DRM_CD_PRINT + STARTTIME, integerOne );
|
|
247 |
maxOccur.put( DRM_CD_PRINT + ENDTIME, integerOne );
|
|
248 |
maxOccur.put( DRM_CD_PRINT + INTERVAL, integerOne );
|
|
249 |
maxOccur.put( DRM_CD_PRINT + ACCUMULATED, integerOne );
|
|
250 |
}
|
|
251 |
|
|
252 |
/**
|
|
253 |
* Check if this key is a encryption value
|
|
254 |
* @param key (not a XML key but UI key)
|
|
255 |
* @return
|
|
256 |
*/
|
|
257 |
public static boolean isEncryptionValue(String key){
|
|
258 |
return key.startsWith(DRM_CD);
|
|
259 |
}
|
|
260 |
|
|
261 |
private void initFixedValues(){
|
|
262 |
itemsValues = new LinkedHashMap<String, String[]>(4);
|
|
263 |
|
|
264 |
//For enabling creation of empty type (then directory will be created) we first add a empty slot for list
|
|
265 |
String [] items = new String[ALL_FILE_TYPES_AS_COMMA_SEPARATED_STRING.length + 1];
|
|
266 |
items [0] = AbstractValue.EMPTY_STRING;
|
|
267 |
for (int i = 1; i < items.length; i++) {
|
|
268 |
items[i] = ALL_FILE_TYPES_AS_COMMA_SEPARATED_STRING[i - 1];
|
|
269 |
}
|
|
270 |
|
|
271 |
itemsValues.put(TYPE_XML, items);
|
|
272 |
|
|
273 |
|
|
274 |
itemsValues.put(ENCRYPTION_TYPE_XML, new String[] {DRM_FL, DRM_CD});
|
|
275 |
|
|
276 |
}
|
|
277 |
|
|
278 |
protected AbstractVariables getInstanceImpl() {
|
|
279 |
return instance;
|
|
280 |
}
|
|
281 |
|
|
282 |
/**
|
|
283 |
* Get ID used in editor to <right><[element]>
|
|
284 |
* @param rightType
|
|
285 |
* @param elementName
|
|
286 |
* @return Interal ID for <right><[element]>
|
|
287 |
*/
|
|
288 |
public static String getEncryptionId(String rightType, String elementName) {
|
|
289 |
|
|
290 |
if(rightType.equalsIgnoreCase(DISPLAY_TYPE)){
|
|
291 |
return getEncryptionElemnInternalId(DISPLAY_TYPE, elementName);
|
|
292 |
}
|
|
293 |
else if(rightType.equalsIgnoreCase(PLAY_TYPE)){
|
|
294 |
return getEncryptionElemnInternalId(PLAY_TYPE, elementName);
|
|
295 |
}
|
|
296 |
else if(rightType.equalsIgnoreCase(EXECUTE_TYPE)){
|
|
297 |
return getEncryptionElemnInternalId(EXECUTE_TYPE, elementName);
|
|
298 |
}
|
|
299 |
else if(rightType.equalsIgnoreCase(PRINT_TYPE)){
|
|
300 |
return getEncryptionElemnInternalId(PRINT_TYPE, elementName);
|
|
301 |
}
|
|
302 |
|
|
303 |
return null;
|
|
304 |
}
|
|
305 |
|
|
306 |
/**
|
|
307 |
* Get id for encryption element used only in object model, not in XML
|
|
308 |
* @param type
|
|
309 |
* @param elemn
|
|
310 |
* @return id
|
|
311 |
*/
|
|
312 |
private static String getEncryptionElemnInternalId(String type, String elemn){
|
|
313 |
|
|
314 |
|
|
315 |
if(elemn.equalsIgnoreCase(COUNT_XML)){
|
|
316 |
return type + COUNT_XML;
|
|
317 |
}
|
|
318 |
else if(elemn.equalsIgnoreCase(INTERVAL_XML)){
|
|
319 |
return type + INTERVAL_XML;
|
|
320 |
}
|
|
321 |
else if(elemn.equalsIgnoreCase(ENDTIME_XML)){
|
|
322 |
return type + ENDTIME_XML;
|
|
323 |
}
|
|
324 |
else if(elemn.equalsIgnoreCase(STARTTIME_XML)){
|
|
325 |
return type + STARTTIME_XML;
|
|
326 |
}
|
|
327 |
else if(elemn.equalsIgnoreCase(ACCUMULATED_XML)){
|
|
328 |
return type + ACCUMULATED_XML;
|
|
329 |
}
|
|
330 |
else{
|
|
331 |
return null;
|
|
332 |
}
|
|
333 |
|
|
334 |
}
|
|
335 |
|
|
336 |
|
|
337 |
/* (non-Javadoc)
|
|
338 |
* @see com.nokia.s60tools.creator.components.AbstractVariables#isModeEnabledForKey(java.lang.String)
|
|
339 |
*/
|
|
340 |
public boolean isModeEnabledForKey(String key) {
|
|
341 |
if(key != null && key.equals(ENCRYPTION_TYPE)){
|
|
342 |
return false;
|
|
343 |
}
|
|
344 |
else{
|
|
345 |
return true;
|
|
346 |
}
|
|
347 |
}
|
|
348 |
|
|
349 |
}
|