--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/creatorextension/com.nokia.s60tools.creator/src/com/nokia/s60tools/creator/components/filetype/FileTypeVariables.java Tue Jan 12 13:17:53 2010 -0600
@@ -0,0 +1,349 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+package com.nokia.s60tools.creator.components.filetype;
+
+import java.util.LinkedHashMap;
+
+import com.nokia.s60tools.creator.components.AbstractValue;
+import com.nokia.s60tools.creator.components.AbstractVariables;
+
+/**
+ * Variables for file
+ */
+public class FileTypeVariables extends AbstractVariables {
+
+
+ /**
+ * UI text for "Encryption Type"
+ */
+ public static final String ENCRYPTION_TYPE = "Encryption Type";
+
+ /**
+ * XML element "right"
+ */
+ public static final String RIGHT_XML = "right";
+ //
+ //Constants for UI, privates because of prefixes (Play, Print...)
+ //
+ private static final String ENDTIME = "Endtime";
+ private static final String STARTTIME = "Starttime";
+ private static final String ACCUMULATED = "Accumulated";
+ private static final String INTERVAL = "Interval";
+ private static final String COUNT = "Count";
+
+
+ //
+ //constants for XML element names
+ //
+ public static final String COUNT_XML = "count";
+ public static final String INTERVAL_XML = "interval";
+ public static final String ENDTIME_XML = "endtime";
+ public static final String STARTTIME_XML = "starttime";
+ public static final String ACCUMULATED_XML = "accumulated";
+ public static final String ENCRYPTION_TYPE_XML = "encryption";
+ public static final String TYPE_XML = "type";
+
+
+ //
+ //Constants for print
+ //
+ public static final String PRINT_TYPE = "print";
+ public static final String PRINTINTERVAL = PRINT_TYPE + INTERVAL_XML;
+ public static final String PRINTENDTIME = PRINT_TYPE + ENDTIME_XML;
+ public static final String PRINTSTARTTIME = PRINT_TYPE + STARTTIME_XML;
+ public static final String PRINTCOUNT = PRINT_TYPE + COUNT_XML;
+ public static final String PRINTACCUMULATED = PRINT_TYPE + ACCUMULATED_XML;
+
+ public static final String [][] PRINT_KEYS = {{
+ PRINTCOUNT, PRINTINTERVAL, PRINTSTARTTIME, PRINTENDTIME, PRINTACCUMULATED
+ },{
+ COUNT_XML, INTERVAL_XML, STARTTIME_XML, ENDTIME_XML, ACCUMULATED_XML
+ }};
+
+ //
+ //Constants for execute
+ //
+ public static final String EXECUTE_TYPE = "execute";
+ public static final String EXECUTEINTERVAL = EXECUTE_TYPE + INTERVAL_XML;
+ public static final String EXECUTEENDTIME = EXECUTE_TYPE + ENDTIME_XML;
+ public static final String EXECUTESTARTTIME = EXECUTE_TYPE + STARTTIME_XML;
+ public static final String EXECUTECOUNT = EXECUTE_TYPE + COUNT_XML;
+ public static final String EXECUTEACCUMULATED = EXECUTE_TYPE + ACCUMULATED_XML;
+ public static final String [][] EXECUTE_KEYS = {{
+ EXECUTECOUNT, EXECUTEINTERVAL, EXECUTESTARTTIME, EXECUTEENDTIME, EXECUTEACCUMULATED
+ },{
+ COUNT_XML, INTERVAL_XML, STARTTIME_XML, ENDTIME_XML, ACCUMULATED_XML
+ }};
+
+ //
+ //Constants for display
+ //
+ public static final String DISPLAY_TYPE = "display";
+ public static final String DISPLAYINTERVAL = DISPLAY_TYPE + INTERVAL_XML;
+ public static final String DISPLAYENDTIME = DISPLAY_TYPE + ENDTIME_XML;
+ public static final String DISPLAYSTARTTIME = DISPLAY_TYPE + STARTTIME_XML;
+ public static final String DISPLAYCOUNT = DISPLAY_TYPE + COUNT_XML;
+ public static final String DISPLAYACCUMULATED = DISPLAY_TYPE + ACCUMULATED_XML;
+ public static final String [][] DISPLAY_KEYS = {{
+ DISPLAYCOUNT, DISPLAYINTERVAL, DISPLAYSTARTTIME, DISPLAYENDTIME, DISPLAYACCUMULATED
+ },{
+ COUNT_XML, INTERVAL_XML, STARTTIME_XML, ENDTIME_XML, ACCUMULATED_XML
+ }};
+
+ //
+ //Constants for play
+ //
+ public static final String PLAY_TYPE = "play";
+ public static final String PLAYINTERVAL = PLAY_TYPE + INTERVAL_XML;
+ public static final String PLAYENDTIME = PLAY_TYPE + ENDTIME_XML;
+ public static final String PLAYSTARTTIME = PLAY_TYPE + STARTTIME_XML;
+ public static final String PLAYCOUNT = PLAY_TYPE + COUNT_XML;
+ public static final String PLAYACCUMULATED = PLAY_TYPE + ACCUMULATED_XML;
+ public static final String [][] PLAY_KEYS = {{
+ PLAYCOUNT, PLAYINTERVAL, PLAYSTARTTIME, PLAYENDTIME, PLAYACCUMULATED
+ },{
+ COUNT_XML, INTERVAL_XML, STARTTIME_XML, ENDTIME_XML, ACCUMULATED_XML
+ }};
+
+
+ /**
+ * Prefix for "DRM-CD"
+ */
+ public static final String DRM_CD = "DRM-CD";
+ /**
+ * Prefix for "DRM-FL"
+ */
+ public static final String DRM_FL = "DRM-FL";
+
+ //
+ // Prefixes for DRM-CD variables
+ //
+ private static final String DRM_CD_PRINT = DRM_CD + " Print ";
+ private static final String DRM_CD_EXECUTE = DRM_CD + " Execute ";
+ private static final String DRM_CD_DISPLAY = DRM_CD + " Display ";
+ private static final String DRM_CD_PLAY = DRM_CD + " Play ";
+
+ public static final String DURATIONS_HELP_TEXT = "For '" +ACCUMULATED + "' and '" +INTERVAL +"' -fields use format: "
+ +"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, "
+ +"T is time part start point, H stands for hour, M for minute and S for second. "
+ +" E.g. P1Y2M3DT4H5M6S.";
+
+
+ private static FileTypeVariables instance;
+
+ /**
+ * Get Singleton instance of variables
+ * @return
+ */
+ public static FileTypeVariables getInstance() {
+
+ if(instance == null){
+ instance = new FileTypeVariables();
+ }
+
+ return instance;
+ }
+
+ private FileTypeVariables(){
+ init();
+ initFixedValues();
+ initMaxOccurValues();
+ }
+
+ public static final String TYPE = "Type";
+ public static final String DIR = "Directory";
+ 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"};
+ 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"};
+
+ private void init() {
+
+ items = new LinkedHashMap<String, String>(4);
+ items.put(TYPE_XML, TYPE);
+ items.put("directory", DIR);
+
+ items.put(ENCRYPTION_TYPE_XML, ENCRYPTION_TYPE);
+
+ items.put(PLAYCOUNT, DRM_CD_PLAY + COUNT);
+ items.put(PLAYSTARTTIME, DRM_CD_PLAY + STARTTIME);
+ items.put(PLAYENDTIME, DRM_CD_PLAY + ENDTIME);
+ items.put(PLAYINTERVAL, DRM_CD_PLAY + INTERVAL);
+ items.put(PLAYACCUMULATED, DRM_CD_PLAY + ACCUMULATED);
+
+ items.put(DISPLAYCOUNT, DRM_CD_DISPLAY + COUNT);
+ items.put(DISPLAYSTARTTIME, DRM_CD_DISPLAY + STARTTIME);
+ items.put(DISPLAYENDTIME, DRM_CD_DISPLAY + ENDTIME);
+ items.put(DISPLAYINTERVAL, DRM_CD_DISPLAY + INTERVAL);
+ items.put(DISPLAYACCUMULATED, DRM_CD_DISPLAY + ACCUMULATED);
+
+ items.put(EXECUTECOUNT, DRM_CD_EXECUTE + COUNT);
+ items.put(EXECUTESTARTTIME, DRM_CD_EXECUTE + STARTTIME);
+ items.put(EXECUTEENDTIME, DRM_CD_EXECUTE + ENDTIME);
+ items.put(EXECUTEINTERVAL, DRM_CD_EXECUTE + INTERVAL);
+ items.put(EXECUTEACCUMULATED, DRM_CD_EXECUTE + ACCUMULATED);
+
+ items.put(PRINTCOUNT, DRM_CD_PRINT + COUNT);
+ items.put(PRINTSTARTTIME, DRM_CD_PRINT + STARTTIME);
+ items.put(PRINTENDTIME, DRM_CD_PRINT + ENDTIME);
+ items.put(PRINTINTERVAL, DRM_CD_PRINT + INTERVAL);
+ items.put(PRINTACCUMULATED, DRM_CD_PRINT + ACCUMULATED);
+
+
+ additionalItems = new LinkedHashMap<String, String>(4);
+ additionalItems.put(COUNT_XML, COUNT_XML);
+ additionalItems.put(INTERVAL_XML, INTERVAL_XML);
+ additionalItems.put(ENDTIME_XML, ENDTIME_XML);
+ additionalItems.put(STARTTIME_XML, STARTTIME_XML);
+ additionalItems.put(ACCUMULATED_XML, ACCUMULATED_XML);
+ additionalItems.put(RIGHT_XML, RIGHT_XML);
+
+ }
+
+ /**
+ * Inits Max Occur valus for items
+ */
+ private void initMaxOccurValues(){
+ maxOccur = new LinkedHashMap<String, Integer>(4);
+
+ Integer integerOne = new Integer (1);
+ maxOccur.put(TYPE, integerOne );//Should it be able to add more than one file? If So, also S60 side must be changed.
+ maxOccur.put(DIR, integerOne );
+ maxOccur.put(ENCRYPTION_TYPE, integerOne );
+
+ maxOccur.put( DRM_CD_PLAY + COUNT, integerOne );
+ maxOccur.put( DRM_CD_PLAY + STARTTIME, integerOne );
+ maxOccur.put( DRM_CD_PLAY + ENDTIME, integerOne );
+ maxOccur.put( DRM_CD_PLAY + INTERVAL, integerOne );
+ maxOccur.put( DRM_CD_PLAY + ACCUMULATED, integerOne );
+
+ maxOccur.put( DRM_CD_DISPLAY + COUNT, integerOne );
+ maxOccur.put( DRM_CD_DISPLAY + STARTTIME, integerOne );
+ maxOccur.put( DRM_CD_DISPLAY + ENDTIME, integerOne );
+ maxOccur.put( DRM_CD_DISPLAY + INTERVAL, integerOne );
+ maxOccur.put( DRM_CD_DISPLAY + ACCUMULATED, integerOne );
+
+ maxOccur.put( DRM_CD_EXECUTE + COUNT, integerOne );
+ maxOccur.put( DRM_CD_EXECUTE + STARTTIME, integerOne );
+ maxOccur.put( DRM_CD_EXECUTE + ENDTIME, integerOne );
+ maxOccur.put( DRM_CD_EXECUTE + INTERVAL, integerOne );
+ maxOccur.put( DRM_CD_EXECUTE + ACCUMULATED, integerOne );
+
+ maxOccur.put( DRM_CD_PRINT + COUNT, integerOne );
+ maxOccur.put( DRM_CD_PRINT + STARTTIME, integerOne );
+ maxOccur.put( DRM_CD_PRINT + ENDTIME, integerOne );
+ maxOccur.put( DRM_CD_PRINT + INTERVAL, integerOne );
+ maxOccur.put( DRM_CD_PRINT + ACCUMULATED, integerOne );
+ }
+
+ /**
+ * Check if this key is a encryption value
+ * @param key (not a XML key but UI key)
+ * @return
+ */
+ public static boolean isEncryptionValue(String key){
+ return key.startsWith(DRM_CD);
+ }
+
+ private void initFixedValues(){
+ itemsValues = new LinkedHashMap<String, String[]>(4);
+
+ //For enabling creation of empty type (then directory will be created) we first add a empty slot for list
+ String [] items = new String[ALL_FILE_TYPES_AS_COMMA_SEPARATED_STRING.length + 1];
+ items [0] = AbstractValue.EMPTY_STRING;
+ for (int i = 1; i < items.length; i++) {
+ items[i] = ALL_FILE_TYPES_AS_COMMA_SEPARATED_STRING[i - 1];
+ }
+
+ itemsValues.put(TYPE_XML, items);
+
+
+ itemsValues.put(ENCRYPTION_TYPE_XML, new String[] {DRM_FL, DRM_CD});
+
+ }
+
+ protected AbstractVariables getInstanceImpl() {
+ return instance;
+ }
+
+ /**
+ * Get ID used in editor to <right><[element]>
+ * @param rightType
+ * @param elementName
+ * @return Interal ID for <right><[element]>
+ */
+ public static String getEncryptionId(String rightType, String elementName) {
+
+ if(rightType.equalsIgnoreCase(DISPLAY_TYPE)){
+ return getEncryptionElemnInternalId(DISPLAY_TYPE, elementName);
+ }
+ else if(rightType.equalsIgnoreCase(PLAY_TYPE)){
+ return getEncryptionElemnInternalId(PLAY_TYPE, elementName);
+ }
+ else if(rightType.equalsIgnoreCase(EXECUTE_TYPE)){
+ return getEncryptionElemnInternalId(EXECUTE_TYPE, elementName);
+ }
+ else if(rightType.equalsIgnoreCase(PRINT_TYPE)){
+ return getEncryptionElemnInternalId(PRINT_TYPE, elementName);
+ }
+
+ return null;
+ }
+
+ /**
+ * Get id for encryption element used only in object model, not in XML
+ * @param type
+ * @param elemn
+ * @return id
+ */
+ private static String getEncryptionElemnInternalId(String type, String elemn){
+
+
+ if(elemn.equalsIgnoreCase(COUNT_XML)){
+ return type + COUNT_XML;
+ }
+ else if(elemn.equalsIgnoreCase(INTERVAL_XML)){
+ return type + INTERVAL_XML;
+ }
+ else if(elemn.equalsIgnoreCase(ENDTIME_XML)){
+ return type + ENDTIME_XML;
+ }
+ else if(elemn.equalsIgnoreCase(STARTTIME_XML)){
+ return type + STARTTIME_XML;
+ }
+ else if(elemn.equalsIgnoreCase(ACCUMULATED_XML)){
+ return type + ACCUMULATED_XML;
+ }
+ else{
+ return null;
+ }
+
+ }
+
+
+ /* (non-Javadoc)
+ * @see com.nokia.s60tools.creator.components.AbstractVariables#isModeEnabledForKey(java.lang.String)
+ */
+ public boolean isModeEnabledForKey(String key) {
+ if(key != null && key.equals(ENCRYPTION_TYPE)){
+ return false;
+ }
+ else{
+ return true;
+ }
+ }
+
+}