SETTING: split setting data and layout data
authorgreatim <jaewon81.lim@samsung.com>
Thu, 16 Jul 2015 14:10:51 +0000 (23:10 +0900)
committergreatim <jaewon81.lim@samsung.com>
Thu, 16 Jul 2015 15:49:45 +0000 (00:49 +0900)
split setting data and layout data
 - make UILayoutDataManager
 - remove chart list from SettingDataManager
remove selected chart list from TimelineDataManager
 - instread, use selected chart list of UILayoutDataManager
refactoring SettingDataManager
 - rearrange some method, rename some method

Change-Id: Iac6f67e1b9f8d66300c6ea5397b9bcfcd5276c78
Signed-off-by: greatim <jaewon81.lim@samsung.com>
15 files changed:
org.tizen.dynamicanalyzer.common/src/org/tizen/dynamicanalyzer/util/StringUtil.java
org.tizen.dynamicanalyzer.workbench/dynamic-analyzer/config/layout [new file with mode: 0644]
org.tizen.dynamicanalyzer.workbench/dynamic-analyzer/config/setting
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/setting/SettingConstants.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/setting/SettingDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/setting/UILayoutDataManager.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/interactive/chart/InteractiveEditItemsDialog.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/interactive/data/InteractiveDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineEditItemsDialog.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/SettingDialogManager.java
org.tizen.dynamicanalyzer/test/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/data/SettingDataManagerTest.java
org.tizen.dynamicanalyzer/test/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/data/layout [new file with mode: 0644]
org.tizen.dynamicanalyzer/test/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/data/setting

index 6e2f97e..d5b6b3b 100644 (file)
@@ -27,7 +27,7 @@
 
 package org.tizen.dynamicanalyzer.util;
 
-import java.util.List;
+import java.util.Collection;
 
 public class StringUtil {
 
@@ -60,15 +60,15 @@ public class StringUtil {
                }
        }
 
-       public static String concatenate(List<String> strings, String seperator) {
+       public static String concatenate(Collection<String> strings, String delimiter) {
                if (strings == null) {
                        return null;
                }
 
-               return concatenate(strings.toArray(new String[0]), seperator);
+               return concatenate(strings.toArray(new String[0]), delimiter);
        }
 
-       public static String concatenate(String[] strings, String seperator) {
+       public static String concatenate(String[] strings, String delimiter) {
                if (strings == null) {
                        return null;
                }
@@ -77,7 +77,7 @@ public class StringUtil {
 
                for (int i = 0; i < strings.length; i++) {
                        if (i != 0) {
-                               buffer.append(seperator);
+                               buffer.append(delimiter);
                        }
                        buffer.append(strings[i]);
                }
diff --git a/org.tizen.dynamicanalyzer.workbench/dynamic-analyzer/config/layout b/org.tizen.dynamicanalyzer.workbench/dynamic-analyzer/config/layout
new file mode 100644 (file)
index 0000000..982f364
--- /dev/null
@@ -0,0 +1,2 @@
+Selected Chart List|CPU|CPU core|CPU frequency
+Default Chart List|CPU|CPU core|CPU frequency
index 9416344..db22b1e 100644 (file)
@@ -3,8 +3,6 @@ Log Level|4
 Debug Print|N
 Available Target List|mobile
 Selected Target|mobile
-Selected Chart List|CPU|CPU core|CPU frequency
-Default Chart List|CPU|CPU core|CPU frequency
 Options Selected Feature List|5002:0
 Default Feature List|2|3|103
 Total Overhead Range|1000000|3000000|7000000|15000000
index feb4158..f573f30 100644 (file)
@@ -34,9 +34,9 @@ public class SettingConstants {
        public static final String READ_CSV_SEPARATOR = "\\" + CommonConstants.CMD_SPLIT;
        public static final String WRITE_CSV_SEPARATOR = CommonConstants.CMD_SPLIT;
        public static final String SETTING_FILE_NAME = "setting";
-       public static final String FEATUER_FILE_NAME = "feature";
+       public static final String FEATURE_FILE_NAME = "feature";
        public static final String TEMPLATE_FILE_NAME = "template";
-       public static final String PROTOCOL_FILE_NAME = "protocol";
+       public static final String LAYOUT_FILE_NAME = "layout";
 
        public static final String VALUE_YES = "Y";
        public static final String VALUE_NO = "N";
@@ -47,8 +47,6 @@ public class SettingConstants {
        public static final String KEY_DEBUG_PRINT = "Debug Print";
        public static final String KEY_AVAILABLE_TARGET_LIST = "Available Target List";
        public static final String KEY_SELECTED_TARGET = "Selected Target";
-       public static final String KEY_SELECTED_CHART_LIST = "Selected Chart List";
-       public static final String KEY_DEFAULT_CHART_LIST = "Default Chart List";
        public static final String KEY_OPTIONS_SELECTED_FEATURE_LIST = "Options Selected Feature List";
        public static final String KEY_DEFAULT_FEATURE_LIST = "Default Feature List";
        public static final String KEY_TOTAL_OVERHEAD_RANGE = "Total Overhead Range";
@@ -72,7 +70,6 @@ public class SettingConstants {
        public static final int FEATURE_KEY_MAX_VALUE = 7;
        public static final int FEATURE_KEY_DEFAULT_VALUE = 8;
        public static final int FEATURE_KEY_OVERHEAD_RANKING = 9;
-       public static final int FEATURE_KEY_PROTOCOL_LIST = 10;
 
        // feature type
        public static final int FEATURE_TYPE_MAIN = 0;
@@ -99,6 +96,11 @@ public class SettingConstants {
        public static final int TEMPLATE_KEY_TEMPLATE_INDEX = 0;
        public static final int TEMPLATE_KEY_TEMPLATE_NAME = 1;
 
+       /** layout **/
+       // key name in layout file
+       public static final String KEY_DEFAULT_CHART_LIST = "Default Chart List";
+       public static final String KEY_SELECTED_CHART_LIST = "Selected Chart List";
+
        /** protocol **/
        // protocol key index in protocol file
        public static final int PROTOCOL_KEY_PROTOCOL_INDEX = 0;
@@ -111,7 +113,7 @@ public class SettingConstants {
 
        // overhead and call count measuring time = 30 sec
        public static final int OVERHEAD_AVG_SECONDS = 30;
-       
+
        /** about UI **/
        // page names
        public static String PAGE_NAME_TIME_LINE = "Timeline";
index b570510..7523869 100644 (file)
@@ -60,21 +60,20 @@ public enum SettingDataManager {
        private boolean parsingSuccess = true;
 
        /** read information **/
-       // setting information
+       // setting information (immutable)
        private double version = 0;
        private int logLevel = 0;
-       private List<String> defaultChartList = new ArrayList<String>();
        private List<Feature> defaultFeatureList = new ArrayList<Feature>();
        private List<Long> totalOverheadRange = new ArrayList<Long>();
 
        /** write information **/
        // init selected information : for revert button
        private String initTarget = null;
-       private List<FeatureValueData> initOptionsSelectedFeatureList = null;
+       private List<FeatureValueData> initOptionsSelectedFeatureList = new ArrayList<FeatureValueData>();
 
+       // mutable information
        private String selectedTarget = null;
        private List<FeatureValueData> optionsSelectedFeatureList = new ArrayList<FeatureValueData>();
-       private List<String> selectedChartList = new ArrayList<String>();
 
        // available target list
        private Map<String, TargetData> targetListMap = new LinkedHashMap<String, TargetData>();
@@ -85,38 +84,161 @@ public enum SettingDataManager {
                        SettingConstants.SettingFilePath = PathManager.DA_CONFIG_FOLDER_PATH + File.separator;
                } // else : used in the unit test
 
-               parseSettingData(SettingConstants.FEATUER_FILE_NAME);
-               parseSettingData(SettingConstants.TEMPLATE_FILE_NAME);
-               parseSettingData(SettingConstants.SETTING_FILE_NAME);
-
-               // set chart list
-               selectedChartList.addAll(getOptionsSelectedFeatureChartList());
+               readFeatureFile();
+               readTemplateFile();
+               readSettingFile();
        }
 
        public boolean isParsingSuccess() {
                return parsingSuccess;
        }
 
-       private void parseSettingData(String fileName) {
-               File csv = new File(SettingConstants.SettingFilePath + fileName);
+       private void readFeatureFile() {
+               File csv = new File(SettingConstants.SettingFilePath + SettingConstants.FEATURE_FILE_NAME);
                BufferedReader in = null;
                String content = null;
                try {
                        in = new BufferedReader(new FileReader(csv));
-                       if (SettingConstants.SETTING_FILE_NAME.equals(fileName)) {
-                               while (null != (content = in.readLine())) {
-                                       initSettingData(content);
-                               }
-                       } else if (SettingConstants.FEATUER_FILE_NAME.equals(fileName)) {
-                               while (null != (content = in.readLine())) {
-                                       initFeatureData(content);
+                       while (null != (content = in.readLine())) {
+                               String list[] = content.split(SettingConstants.READ_CSV_SEPARATOR, -1);
+                               if (list != null) {
+                                       int index = Integer.parseInt(list[SettingConstants.FEATURE_KEY_FEATURE_INDEX]);
+                                       Feature feature = Feature.getFeature(index);
+
+                                       // search feature
+                                       if (null == feature) {
+                                               Logger.error("unknown feature : "
+                                                               + list[SettingConstants.FEATURE_KEY_FEATURE_INDEX] + ", "
+                                                               + list[SettingConstants.FEATURE_KEY_FEATURE_NAME]);
+                                               continue;
+                                       }
+
+                                       FeatureData featureData = feature.getData();
+                                       featureData.setFeatureType(Integer
+                                                       .parseInt(list[SettingConstants.FEATURE_KEY_FEATURE_TYPE]));
+
+                                       // set parentIndex
+                                       if ((null != list[SettingConstants.FEATURE_KEY_PARENT_INDEX])
+                                                       && (!(list[SettingConstants.FEATURE_KEY_PARENT_INDEX]).isEmpty())) {
+                                               int parentIndex = Integer
+                                                               .parseInt(list[SettingConstants.FEATURE_KEY_PARENT_INDEX]);
+                                               if (Feature.getFeature(parentIndex) != null) {
+                                                       featureData.setParentIndex(parentIndex);
+                                               }
+                                       } // else : main feature
+
+                                       featureData.makePageList(list[SettingConstants.FEATURE_KEY_PAGE_LIST]);
+                                       featureData.makeChartList(list[SettingConstants.FEATURE_KEY_CHART_LIST]);
+                                       featureData.setMinValue(list[SettingConstants.FEATURE_KEY_MIN_VALUE]);
+                                       featureData.setMaxValue(list[SettingConstants.FEATURE_KEY_MAX_VALUE]);
+                                       featureData.setDefaultValue(list[SettingConstants.FEATURE_KEY_DEFAULT_VALUE]);
+                                       featureData
+                                                       .setOverheadRanking(list[SettingConstants.FEATURE_KEY_OVERHEAD_RANKING]);
                                }
-                       } else if (SettingConstants.TEMPLATE_FILE_NAME.equals(fileName)) {
-                               while (null != (content = in.readLine())) {
-                                       initTemplateData(content);
+                       }
+               } catch (FileNotFoundException e) {
+                       parsingSuccess = false;
+                       Logger.exception(e);
+               } catch (IOException e) {
+                       Logger.exception(e);
+               } finally {
+                       CommonUtil.tryClose(in);
+               }
+       }
+
+       private void readTemplateFile() {
+               File csv = new File(SettingConstants.SettingFilePath + SettingConstants.TEMPLATE_FILE_NAME);
+               BufferedReader in = null;
+               String content = null;
+               try {
+                       in = new BufferedReader(new FileReader(csv));
+                       while (null != (content = in.readLine())) {
+                               String list[] = content.split(SettingConstants.READ_CSV_SEPARATOR, -1);
+                               if (list != null) {
+                                       int index = Integer
+                                                       .parseInt(list[SettingConstants.TEMPLATE_KEY_TEMPLATE_INDEX]);
+                                       Template template = Template.getTemplate(index);
+
+                                       // search template
+                                       if (null == template) {
+                                               Logger.error("unknown template : "
+                                                               + list[SettingConstants.TEMPLATE_KEY_TEMPLATE_INDEX] + ", "
+                                                               + list[SettingConstants.TEMPLATE_KEY_TEMPLATE_NAME]);
+                                               continue;
+                                       }
+
+                                       TemplateData templateDate = template.getData();
+
+                                       // make feature list
+                                       for (int i = 2; i < list.length; i++) {
+                                               templateDate.makeFeatureList(list[i]);
+                                       }
+                               } // else do nothing
+                       }
+               } catch (FileNotFoundException e) {
+                       parsingSuccess = false;
+                       Logger.exception(e);
+               } catch (IOException e) {
+                       Logger.exception(e);
+               } finally {
+                       CommonUtil.tryClose(in);
+               }
+       }
+
+       private void readSettingFile() {
+               File csv = new File(SettingConstants.SettingFilePath + SettingConstants.SETTING_FILE_NAME);
+               BufferedReader in = null;
+               String content = null;
+               try {
+                       in = new BufferedReader(new FileReader(csv));
+                       while (null != (content = in.readLine())) {
+                               String list[] = content.split(SettingConstants.READ_CSV_SEPARATOR);
+
+                               if (list[0].equals(SettingConstants.KEY_VERSION)) {
+                                       version = Double.parseDouble(list[1]);
+                               } else if (list[0].equals(SettingConstants.KEY_LOG_LEVEL)) {
+                                       logLevel = Integer.parseInt(list[1]);
+                               } else if (list[0].equals(SettingConstants.KEY_DEBUG_PRINT)) {
+                                       DebugLog.enableDebugPrint(list[1].equals(SettingConstants.VALUE_YES));
+                               } else if (list[0].equals(SettingConstants.KEY_AVAILABLE_TARGET_LIST)) {
+                                       for (int i = 1; i < list.length; i++) {
+                                               if (targetListMap.get(list[i]) == null) {
+                                                       targetListMap.put(list[i], new TargetData(list[i]));
+                                               } // else do nothing
+                                       }
+                               } else if (list[0].equals(SettingConstants.KEY_SELECTED_TARGET)) {
+                                       selectedTarget = list[1];
+                                       initTarget = new String(list[1]);
+                               } else if (list[0].equals(SettingConstants.KEY_DEFAULT_FEATURE_LIST)) {
+                                       for (int i = 1; i < list.length; i++) {
+                                               defaultFeatureList.add(Feature.getFeature(Integer.parseInt(list[i])));
+                                       }
+                               } else if (list[0].equals(SettingConstants.KEY_TOTAL_OVERHEAD_RANGE)) {
+                                       for (int i = 1; i < list.length; i++) {
+                                               totalOverheadRange.add(Long.parseLong(list[i]));
+                                       }
+                               } else if (list[0].equals(SettingConstants.KEY_OPTIONS_SELECTED_FEATURE_LIST)) {
+                                       for (int i = 1; i < list.length; i++) {
+                                               String valueList[] = list[i].split(CommonConstants.COLON);
+                                               FeatureValueData feature = new FeatureValueData(Feature.getFeature(Integer
+                                                               .parseInt(valueList[0])));
+
+                                               if (valueList.length > 1) {
+                                                       feature.setValue(Integer.parseInt(valueList[1]));
+                                               } // else : feature is on/off type
+
+                                               optionsSelectedFeatureList.add(feature);
+                                       }
+
+                                       // init Feature list
+                                       copyFeatureList(optionsSelectedFeatureList, initOptionsSelectedFeatureList);
+                               } else {
+                                       if (targetListMap.get(list[0]) != null) {
+                                               getTarget(list[0]).makeDetailInformation(list);
+                                       } else {
+                                               Logger.warning("not available target : " + list[0]);
+                                       }
                                }
-                       } else {
-                               Logger.debug("unknown setting file : " + fileName);
                        }
                } catch (FileNotFoundException e) {
                        parsingSuccess = false;
@@ -128,67 +250,110 @@ public enum SettingDataManager {
                }
        }
 
-       /****************************** feature operation ******************************/
+       /****************************** write setting file functions ****************************/
+
+       private void writeSettingFile() {
+               // written unit test for each of the sub method
+               File csv = new File(SettingConstants.SettingFilePath + SettingConstants.SETTING_FILE_NAME);
+
+               FileWriter fileWriter = null;
+               BufferedWriter buffWriter = null;
+               PrintWriter printWriter = null;
+               try {
+                       fileWriter = new FileWriter(csv);
+                       buffWriter = new BufferedWriter(fileWriter);
+                       printWriter = new PrintWriter(buffWriter);
 
-       public void initFeatureData(String readData) {
-               String list[] = readData.split(SettingConstants.READ_CSV_SEPARATOR, -1);
-               if (list != null) {
-                       int index = Integer.parseInt(list[SettingConstants.FEATURE_KEY_FEATURE_INDEX]);
-                       Feature feature = Feature.getFeature(index);
+                       printWriter.println(SettingConstants.KEY_VERSION + SettingConstants.WRITE_CSV_SEPARATOR
+                                       + version);
+                       printWriter.println(SettingConstants.KEY_LOG_LEVEL
+                                       + SettingConstants.WRITE_CSV_SEPARATOR + logLevel);
+                       printWriter.println(SettingConstants.KEY_DEBUG_PRINT
+                                       + SettingConstants.WRITE_CSV_SEPARATOR
+                                       + (DebugLog.isEnabled() ? SettingConstants.VALUE_YES
+                                                       : SettingConstants.VALUE_NO));
+                       printWriter.println(writeTargetData()); // write available target list
+                       printWriter.println(SettingConstants.KEY_SELECTED_TARGET
+                                       + SettingConstants.WRITE_CSV_SEPARATOR + selectedTarget);
+                       printWriter.println(writeDefaultFeatureList(SettingConstants.KEY_DEFAULT_FEATURE_LIST));
+                       printWriter.println(writeCollection(totalOverheadRange,
+                                       SettingConstants.KEY_TOTAL_OVERHEAD_RANGE));
+                       printWriter.println(SettingConstants.KEY_OPTIONS_SELECTED_FEATURE_LIST
+                                       + SettingConstants.WRITE_CSV_SEPARATOR + writeOptionsSelectedFeatureListData());
 
-                       // search feature
-                       if (null == feature) {
-                               Logger.debug("unknown feature : "
-                                               + list[SettingConstants.FEATURE_KEY_FEATURE_INDEX] + ", "
-                                               + list[SettingConstants.FEATURE_KEY_FEATURE_NAME]);
-                               return;
+                       // target information
+                       for (Map.Entry<String, TargetData> entry : targetListMap.entrySet()) {
+                               TargetData target = entry.getValue();
+                               target.writeSelectedData(printWriter);
                        }
 
-                       FeatureData featureData = feature.getData();
-                       featureData.setFeatureType(Integer
-                                       .parseInt(list[SettingConstants.FEATURE_KEY_FEATURE_TYPE]));
+                       printWriter.checkError();
+               } catch (IOException e) {
+                       Logger.exception(e);
+               } finally {
+                       CommonUtil.tryClose(fileWriter, buffWriter, printWriter);
+               }
+       }
 
-                       // set parentIndex
-                       if ((null != list[SettingConstants.FEATURE_KEY_PARENT_INDEX])
-                                       && (!(list[SettingConstants.FEATURE_KEY_PARENT_INDEX]).isEmpty())) {
-                               int parentIndex = Integer.parseInt(list[SettingConstants.FEATURE_KEY_PARENT_INDEX]);
-                               if (Feature.getFeature(parentIndex) != null) {
-                                       featureData.setParentIndex(parentIndex);
-                               }
-                       } // else : main feature
+       private String writeTargetData() {
+               Set<String> targetNameList = targetListMap.keySet();
+               StringBuffer buffer = new StringBuffer();
+               buffer.append(SettingConstants.KEY_AVAILABLE_TARGET_LIST);
 
-                       featureData.makePageList(list[SettingConstants.FEATURE_KEY_PAGE_LIST]);
-                       featureData.makeChartList(list[SettingConstants.FEATURE_KEY_CHART_LIST]);
-                       featureData.setMinValue(list[SettingConstants.FEATURE_KEY_MIN_VALUE]);
-                       featureData.setMaxValue(list[SettingConstants.FEATURE_KEY_MAX_VALUE]);
-                       featureData.setDefaultValue(list[SettingConstants.FEATURE_KEY_DEFAULT_VALUE]);
-                       featureData.setOverheadRanking(list[SettingConstants.FEATURE_KEY_OVERHEAD_RANKING]);
+               Iterator<String> iter = targetNameList.iterator();
+               while (iter.hasNext()) {
+                       buffer.append(SettingConstants.WRITE_CSV_SEPARATOR + iter.next());
                }
+               return buffer.toString();
        }
 
-       /****************************** template operation ******************************/
+       private String writeDefaultFeatureList(String key) {
+               StringBuffer buffer = new StringBuffer();
+               buffer.append(key + SettingConstants.WRITE_CSV_SEPARATOR);
 
-       private void initTemplateData(String readData) {
-               String list[] = readData.split(SettingConstants.READ_CSV_SEPARATOR, -1);
-               if (list != null) {
-                       int index = Integer.parseInt(list[SettingConstants.TEMPLATE_KEY_TEMPLATE_INDEX]);
-                       Template template = Template.getTemplate(index);
+               for (int i = 0; i < defaultFeatureList.size(); i++) {
+                       if (i < defaultFeatureList.size() - 1) {
+                               buffer.append(defaultFeatureList.get(i).getIndex()
+                                               + SettingConstants.WRITE_CSV_SEPARATOR);
+                       } else {
+                               buffer.append(defaultFeatureList.get(i).getIndex());
+                       }
+               }
+               return buffer.toString();
+       }
 
-                       // search template
-                       if (null == template) {
-                               Logger.debug("unknown template : "
-                                               + list[SettingConstants.TEMPLATE_KEY_TEMPLATE_INDEX] + ", "
-                                               + list[SettingConstants.TEMPLATE_KEY_TEMPLATE_NAME]);
-                               return;
+       private <T> String writeCollection(Collection<T> collection, String key) {
+               StringBuffer subBuffer = new StringBuffer();
+               for (T element : collection) {
+                       if (subBuffer.length() > 0) {
+                               subBuffer.append(SettingConstants.WRITE_CSV_SEPARATOR);
                        }
+                       subBuffer.append(element.toString());
+               }
 
-                       TemplateData templateDate = template.getData();
+               StringBuffer buffer = new StringBuffer();
+               buffer.append(key);
+               buffer.append(SettingConstants.WRITE_CSV_SEPARATOR);
+               buffer.append(subBuffer);
 
-                       // make feature list
-                       for (int i = 2; i < list.length; i++) {
-                               templateDate.makeFeatureList(list[i]);
-                       }
-               } // else do nothing
+               return buffer.toString();
+       }
+
+       private String writeOptionsSelectedFeatureListData() {
+               StringBuffer buffer = new StringBuffer();
+               for (int i = 0; i < optionsSelectedFeatureList.size(); i++) {
+                       FeatureValueData feature = optionsSelectedFeatureList.get(i);
+
+                       buffer.append(feature.getKey().getIndex());
+                       if (feature.getValue() >= 0) { // detail feature
+                               buffer.append(String.valueOf(CommonConstants.COLON + feature.getValue()));
+                       } // else : (main feature or sub feature) feature does not have a value.
+
+                       if (i < optionsSelectedFeatureList.size() - 1) {
+                               buffer.append(SettingConstants.WRITE_CSV_SEPARATOR);
+                       } // else : the last value will be written to a csv file does not contain a comma.
+               }
+               return buffer.toString();
        }
 
        /****************************** protocol operation ******************************/
@@ -283,256 +448,107 @@ public enum SettingDataManager {
                return count * SettingConstants.OVERHEAD_AVG_SECONDS;
        }
 
-       /****************************** setting operation ******************************/
-
-       private void initSettingData(String readData) {
-               String list[] = readData.split(SettingConstants.READ_CSV_SEPARATOR);
-
-               if (list[0].equals(SettingConstants.KEY_VERSION)) {
-                       version = Double.parseDouble(list[1]);
-               } else if (list[0].equals(SettingConstants.KEY_LOG_LEVEL)) {
-                       logLevel = Integer.parseInt(list[1]);
-               } else if (list[0].equals(SettingConstants.KEY_DEBUG_PRINT)) {
-                       DebugLog.enableDebugPrint(list[1].equals(SettingConstants.VALUE_YES));
-               } else if (list[0].equals(SettingConstants.KEY_AVAILABLE_TARGET_LIST)) {
-                       makeTargetData(list);
-               } else if (list[0].equals(SettingConstants.KEY_SELECTED_TARGET)) {
-                       selectedTarget = list[1];
-                       initTarget = new String(list[1]);
-               } else if (list[0].equals(SettingConstants.KEY_SELECTED_CHART_LIST)) {
-                       convertStringArrayToStringList(selectedChartList, list);
-               } else if (list[0].equals(SettingConstants.KEY_DEFAULT_CHART_LIST)) {
-                       convertStringArrayToStringList(defaultChartList, list);
-               } else if (list[0].equals(SettingConstants.KEY_DEFAULT_FEATURE_LIST)) {
-                       convertStringArrayToFeatureList(defaultFeatureList, list);
-               } else if (list[0].equals(SettingConstants.KEY_TOTAL_OVERHEAD_RANGE)) {
-                       convertStringArrayToLongList(totalOverheadRange, list);
-               } else if (list[0].equals(SettingConstants.KEY_OPTIONS_SELECTED_FEATURE_LIST)) {
-                       makeOptionsSelectedFeatureList(list);
-               } else {
-                       if (isTarget(list[0])) {
-                               getTarget(list[0]).makeDetailInformation(list);
-                       } else {
-                               Logger.debug("unknown setting key : " + list[0]);
+       /********************************** chart set manipulation ***************************/
+
+       public Set<String> getOptionsSelectedFeatureChartSet() {
+               Set<String> selectedChartSet = new HashSet<String>();
+               for (int i = 0; i < optionsSelectedFeatureList.size(); i++) {
+                       FeatureData feature = optionsSelectedFeatureList.get(i).getKey().getData();
+                       if (feature.getChartList().size() > 0) {
+                               selectedChartSet.addAll(feature.getChartList());
                        }
                }
+               return selectedChartSet;
        }
 
-       private void makeTargetData(String list[]) {
-               if (list != null) {
-                       for (int i = 1; i < list.length; i++) {
-                               if (isTarget(list[i]) == false) {
-                                       targetListMap.put(list[i], new TargetData(list[i]));
-                               } // else do nothing
+       /**
+        * Get chart information shown on the screen.
+        * 
+        * @param targetName
+        *            targetName
+        * 
+        * @return The chart name list to be shown on the screen.
+        */
+       public Set<String> getSelectedChartSet(String targetName) {
+               TargetData target = getTarget(targetName);
+               if (null != target) {
+                       Set<String> selectedChartSet = new HashSet<String>();
+                       List<FeatureValueData> featureList = target.getSelectedFeatureList();
+                       for (int i = 0; i < featureList.size(); i++) {
+                               FeatureData feature = featureList.get(i).getKey().getData();
+                               if (feature.getChartList().size() > 0) {
+                                       selectedChartSet.addAll(feature.getChartList());
+                               }
                        }
-               } // else do nothing
-       }
-
-       public boolean isTarget(String targetName) {
-               if (targetListMap.get(targetName) == null) {
-                       return false;
+                       return selectedChartSet;
                } else {
-                       return true;
+                       Logger.warning("Does not exist targetName : " + targetName);
+                       return null;
                }
        }
 
-       public TargetData getTarget(String targetName) {
-               if (targetName == null) {
-                       return targetListMap.get(selectedTarget);
-               } else {
-                       return targetListMap.get(targetName);
-               }
-       }
+       /**
+        * Update selected chart set by current setting
+        */
+       public void updateChartSet() {
+               /*-
+                * selected chart set = union of (default chart set, chart set of selected feature,
+                *                                chart set of option selected)
+                */
 
-       private void convertStringArrayToStringList(List<String> list, String array[]) {
-               for (int i = 1; i < array.length; i++) {
-                       list.add(array[i]);
-               }
        }
 
-       private void convertStringArrayToFeatureList(List<Feature> list, String array[]) {
-               for (int i = 1; i < array.length; i++) {
-                       list.add(Feature.getFeature(Integer.parseInt(array[i])));
-               }
-       }
+       /*********************************** Target manipulation ******************************/
 
-       private void convertStringArrayToLongList(List<Long> list, String array[]) {
-               for (int i = 1; i < array.length; i++) {
-                       list.add(Long.parseLong(array[i]));
-               }
+       public String getSelectedTarget() {
+               return selectedTarget;
        }
 
-       private void makeOptionsSelectedFeatureList(String list[]) {
-
-               for (int i = 1; i < list.length; i++) {
-                       String valueList[] = list[i].split(CommonConstants.COLON);
-                       FeatureValueData feature = new FeatureValueData(Feature.getFeature(Integer
-                                       .parseInt(valueList[0])));
-
-                       if (valueList.length > 1) {
-                               feature.setValue(Integer.parseInt(valueList[1]));
-                       } // else : feature is on/off type
-
-                       optionsSelectedFeatureList.add(feature);
-               }
-
-               // init Feature list
-               if (initOptionsSelectedFeatureList == null) {
-                       initOptionsSelectedFeatureList = new ArrayList<FeatureValueData>();
-                       copyFeatureList(optionsSelectedFeatureList, initOptionsSelectedFeatureList);
-               }
+       public void setSelectedTarget(String selectedTarget) {
+               this.selectedTarget = selectedTarget;
        }
 
-       /********************************** write functions ********************************/
-
-       private void writeSettingDataToFile() {
-               // written unit test for each of the sub method
-               File csv = new File(SettingConstants.SettingFilePath + SettingConstants.SETTING_FILE_NAME);
-
-               FileWriter fileWriter = null;
-               BufferedWriter buffWriter = null;
-               PrintWriter printWriter = null;
-               try {
-                       fileWriter = new FileWriter(csv);
-                       buffWriter = new BufferedWriter(fileWriter);
-                       printWriter = new PrintWriter(buffWriter);
-
-                       printWriter.println(SettingConstants.KEY_VERSION + SettingConstants.WRITE_CSV_SEPARATOR
-                                       + version);
-                       printWriter.println(SettingConstants.KEY_LOG_LEVEL
-                                       + SettingConstants.WRITE_CSV_SEPARATOR + logLevel);
-                       printWriter.println(SettingConstants.KEY_DEBUG_PRINT
-                                       + SettingConstants.WRITE_CSV_SEPARATOR
-                                       + (DebugLog.isEnabled() ? SettingConstants.VALUE_YES
-                                                       : SettingConstants.VALUE_NO));
-                       printWriter.println(writeTargetData()); // write available target list
-                       printWriter.println(SettingConstants.KEY_SELECTED_TARGET
-                                       + SettingConstants.WRITE_CSV_SEPARATOR + selectedTarget);
-                       printWriter.println(writeList(selectedChartList,
-                                       SettingConstants.KEY_SELECTED_CHART_LIST));
-                       printWriter
-                                       .println(writeList(defaultChartList, SettingConstants.KEY_DEFAULT_CHART_LIST));
-                       printWriter.println(writeDefaultFeatureList(SettingConstants.KEY_DEFAULT_FEATURE_LIST));
-                       printWriter.println(writeList(totalOverheadRange,
-                                       SettingConstants.KEY_TOTAL_OVERHEAD_RANGE));
-                       printWriter.println(SettingConstants.KEY_OPTIONS_SELECTED_FEATURE_LIST
-                                       + SettingConstants.WRITE_CSV_SEPARATOR + writeOptionsSelectedFeatureListData());
-
-                       // target information
-                       for (Map.Entry<String, TargetData> entry : targetListMap.entrySet()) {
-                               TargetData target = entry.getValue();
-                               target.writeSelectedData(printWriter);
-                       }
-
-                       printWriter.checkError();
-               } catch (IOException e) {
-                       Logger.exception(e);
-               } finally {
-                       CommonUtil.tryClose(fileWriter, buffWriter, printWriter);
-               }
+       public Map<String, TargetData> getTargetListMap() {
+               return Collections.unmodifiableMap(targetListMap);
        }
 
-       private String writeTargetData() {
-               Set<String> targetNameList = targetListMap.keySet();
-               StringBuffer buffer = new StringBuffer();
-               buffer.append(SettingConstants.KEY_AVAILABLE_TARGET_LIST);
-
-               Iterator<String> iter = targetNameList.iterator();
-               while (iter.hasNext()) {
-                       buffer.append(SettingConstants.WRITE_CSV_SEPARATOR + iter.next());
+       public TargetData getTarget(String targetName) {
+               if (targetName == null) {
+                       return targetListMap.get(selectedTarget);
+               } else {
+                       return targetListMap.get(targetName);
                }
-               return buffer.toString();
        }
 
-       private String writeDefaultFeatureList(String key) {
-               StringBuffer buffer = new StringBuffer();
-               buffer.append(key + SettingConstants.WRITE_CSV_SEPARATOR);
-
-               for (int i = 0; i < defaultFeatureList.size(); i++) {
-                       if (i < defaultFeatureList.size() - 1) {
-                               buffer.append(defaultFeatureList.get(i).getIndex()
-                                               + SettingConstants.WRITE_CSV_SEPARATOR);
-                       } else {
-                               buffer.append(defaultFeatureList.get(i).getIndex());
-                       }
-               }
-               return buffer.toString();
-       }
+       public TargetData getConnectedTarget() {
+               // do not unit test the connected device.
+               // check connected target
+               DeviceInfo currentDevice = Global.getCurrentDeviceInfo();
 
-       private <T> String writeList(List<T> list, String key) {
-               StringBuffer buffer = new StringBuffer();
-               buffer.append(key + SettingConstants.WRITE_CSV_SEPARATOR);
+               if (null != currentDevice) {
+                       String profileName = currentDevice.getPlatformName();
 
-               for (int i = 0; i < list.size(); i++) {
-                       if (i < list.size() - 1) {
-                               buffer.append(list.get(i).toString() + SettingConstants.WRITE_CSV_SEPARATOR);
-                       } else {
-                               buffer.append(list.get(i).toString());
+                       if (profileName != null && !(profileName.isEmpty())) {
+                               TargetData tData = targetListMap.get(profileName);
+                               if (tData != null) {
+                                       return tData;
+                               }
                        }
                }
-               return buffer.toString();
-       }
-
-       private String writeOptionsSelectedFeatureListData() {
-               StringBuffer buffer = new StringBuffer();
-               for (int i = 0; i < optionsSelectedFeatureList.size(); i++) {
-                       FeatureValueData feature = optionsSelectedFeatureList.get(i);
-
-                       buffer.append(feature.getKey().getIndex());
-                       if (feature.getValue() >= 0) { // detail feature
-                               buffer.append(String.valueOf(CommonConstants.COLON + feature.getValue()));
-                       } // else : (main feature or sub feature) feature does not have a value.
-
-                       if (i < optionsSelectedFeatureList.size() - 1) {
-                               buffer.append(SettingConstants.WRITE_CSV_SEPARATOR);
-                       } // else : the last value will be written to a csv file does not contain a comma.
-               }
-               return buffer.toString();
-       }
-
-       /********************************** get / set functions *******************************/
-
-       public List<String> getDefaultChartList() {
-               return Collections.unmodifiableList(defaultChartList);
-       }
 
-       public List<String> getSelectedChartList() {
-               return Collections.unmodifiableList(selectedChartList);
+               return targetListMap.get(selectedTarget);
        }
 
-       public Map<String, TargetData> getTargetListMap() {
-               return Collections.unmodifiableMap(targetListMap);
-       }
+       /********************************** Feature manipulation ******************************/
 
        public List<Feature> getDefaultFeatureList() {
                return Collections.unmodifiableList(defaultFeatureList);
        }
 
-       public List<Long> getTotalOverheadRange() {
-               return Collections.unmodifiableList(totalOverheadRange);
-       }
-
        public List<FeatureValueData> getOptionsSelectedFeatureList() {
                return Collections.unmodifiableList(optionsSelectedFeatureList);
        }
 
-       public String getSelectedTarget() {
-               return selectedTarget;
-       }
-
-       public void setSelectedTarget(String selectedTarget) {
-               this.selectedTarget = selectedTarget;
-       }
-
-       public int getTotalOverheadRangeCount() {
-               return totalOverheadRange.size() + 1;
-       }
-
-       public void setSelectedChartList(Collection<String> selectedChartList) {
-               this.selectedChartList.clear();
-               this.selectedChartList.addAll(selectedChartList);
-       }
-
        public void addOptionsSelectedFeature(Feature feature, int featureValue) {
                FeatureValueData featureData = getFeatureValueData(optionsSelectedFeatureList, feature);
                // create FeatureValueData
@@ -608,50 +624,18 @@ public enum SettingDataManager {
                return null;
        }
 
-       public Set<String> getOptionsSelectedFeatureChartList() {
-               Set<String> selectedChartList = new HashSet<String>();
-               for (int i = 0; i < optionsSelectedFeatureList.size(); i++) {
-                       FeatureData feature = optionsSelectedFeatureList.get(i).getKey().getData();
-                       if (feature.getChartList().size() > 0) {
-                               selectedChartList.addAll(feature.getChartList());
-                       }
-               }
-               return selectedChartList;
-       }
-
-       /******************************* miscellaneous **********************************/
-
-       private void copyFeatureList(List<FeatureValueData> source, List<FeatureValueData> dest) {
-               dest.clear();
-
-               if (source.isEmpty()) {
-                       return;
-               }
+       /******************************* Overhead manipulation *********************************/
 
-               for (int i = 0; i < source.size(); i++) {
-                       dest.add(new FeatureValueData(source.get(i)));
-               }
+       public List<Long> getTotalOverheadRange() {
+               return Collections.unmodifiableList(totalOverheadRange);
        }
 
-       public TargetData getConnectedTarget() {
-               // do not unit test the connected device.
-               // check connected target
-               DeviceInfo currentDevice = Global.getCurrentDeviceInfo();
-
-               if (null != currentDevice) {
-                       String profileName = currentDevice.getPlatformName();
-
-                       if (profileName != null && !(profileName.isEmpty())) {
-                               TargetData tData = targetListMap.get(profileName);
-                               if (tData != null) {
-                                       return tData;
-                               }
-                       }
-               }
-
-               return targetListMap.get(selectedTarget);
+       public int getTotalOverheadRangeCount() {
+               return totalOverheadRange.size() + 1;
        }
 
+       /******************************* Page list manipulation ********************************/
+
        /**
         * Get page information shown on the screen.
         * 
@@ -676,29 +660,17 @@ public enum SettingDataManager {
                }
        }
 
-       /**
-        * Get chart information shown on the screen.
-        * 
-        * @param targetName
-        *            targetName
-        * 
-        * @return The chart name list to be shown on the screen.
-        */
-       public Set<String> getSelectedChartList(String targetName) {
-               TargetData target = getTarget(targetName);
-               if (null != target) {
-                       Set<String> selectedChartList = new HashSet<String>();
-                       List<FeatureValueData> featureList = target.getSelectedFeatureList();
-                       for (int i = 0; i < featureList.size(); i++) {
-                               FeatureData feature = featureList.get(i).getKey().getData();
-                               if (feature.getChartList().size() > 0) {
-                                       selectedChartList.addAll(feature.getChartList());
-                               }
-                       }
-                       return selectedChartList;
-               } else {
-                       Logger.debug("Does not exist targetName : " + targetName);
-                       return null;
+       /******************************* miscellaneous **********************************/
+
+       private void copyFeatureList(List<FeatureValueData> source, List<FeatureValueData> dest) {
+               dest.clear();
+
+               if (source.isEmpty()) {
+                       return;
+               }
+
+               for (int i = 0; i < source.size(); i++) {
+                       dest.add(new FeatureValueData(source.get(i)));
                }
        }
 
@@ -741,7 +713,7 @@ public enum SettingDataManager {
        public void applySettingData() {
                // do not unit test the file write.
                // write setting file
-               writeSettingDataToFile();
+               writeSettingFile();
 
                // update setting data
                updateSettingData();
@@ -775,14 +747,6 @@ public enum SettingDataManager {
                }
        }
 
-       public void writeSelectedChartList(List<String> selectedChartList) {
-               // do not unit test the file write.
-               setSelectedChartList(selectedChartList);
-
-               // write setting file
-               writeSettingDataToFile();
-       }
-
        public void writeAvailableChartList(String targetName, List<String> availableChartList) {
                // do not unit test the file write.
                TargetData target = getTarget(targetName);
@@ -793,7 +757,7 @@ public enum SettingDataManager {
                }
 
                // write setting file
-               writeSettingDataToFile();
+               writeSettingFile();
        }
 
        public Set<Feature> getSelectedFeatureSet() {
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/setting/UILayoutDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/setting/UILayoutDataManager.java
new file mode 100644 (file)
index 0000000..a573b3c
--- /dev/null
@@ -0,0 +1,162 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: 
+ * Jaewon Lim <jaewon81.lim@samsung.com>
+ * Heeyoung Hwang <heeyoung1008.hwang@samsung.com>
+ * Woojin Jung <woojin2.jung@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+package org.tizen.dynamicanalyzer.setting;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.tizen.dynamicanalyzer.common.path.PathManager;
+import org.tizen.dynamicanalyzer.util.CommonUtil;
+import org.tizen.dynamicanalyzer.util.Logger;
+
+public enum UILayoutDataManager {
+       INSTANCE;
+
+       private Set<String> defaultChartSet = new HashSet<String>();
+       private Set<String> selectedChartSet = new HashSet<String>();
+
+       private Set<String> selectedPageSet = new HashSet<String>();
+
+       private UILayoutDataManager() {
+               // set SettingFilePath
+               if (null == SettingConstants.SettingFilePath) {
+                       SettingConstants.SettingFilePath = PathManager.DA_CONFIG_FOLDER_PATH + File.separator;
+               } // else : used in the unit test
+
+               readLayoutFile();
+       }
+
+       public void readLayoutFile() {
+               File csv = new File(SettingConstants.SettingFilePath + SettingConstants.LAYOUT_FILE_NAME);
+               BufferedReader in = null;
+               String content = null;
+               try {
+                       in = new BufferedReader(new FileReader(csv));
+                       while (null != (content = in.readLine())) {
+                               String list[] = content.split(SettingConstants.READ_CSV_SEPARATOR);
+                               if (list[0].equals(SettingConstants.KEY_SELECTED_CHART_LIST)) {
+                                       for (int i = 1; i < list.length; i++) {
+                                               selectedChartSet.add(list[i]);
+                                       }
+                               } else if (list[0].equals(SettingConstants.KEY_DEFAULT_CHART_LIST)) {
+                                       for (int i = 1; i < list.length; i++) {
+                                               defaultChartSet.add(list[i]);
+                                       }
+                               }
+                       }
+               } catch (FileNotFoundException e) {
+                       Logger.exception(e);
+               } catch (IOException e) {
+                       Logger.exception(e);
+               } finally {
+                       CommonUtil.tryClose(in);
+               }
+       }
+
+       private void writeLayoutFile() {
+               File csv = new File(SettingConstants.SettingFilePath + SettingConstants.LAYOUT_FILE_NAME);
+
+               FileWriter fileWriter = null;
+               BufferedWriter buffWriter = null;
+               PrintWriter printWriter = null;
+               try {
+                       fileWriter = new FileWriter(csv);
+                       buffWriter = new BufferedWriter(fileWriter);
+                       printWriter = new PrintWriter(buffWriter);
+
+                       printWriter.println(writeCollection(selectedChartSet,
+                                       SettingConstants.KEY_SELECTED_CHART_LIST));
+                       printWriter.println(writeCollection(defaultChartSet,
+                                       SettingConstants.KEY_DEFAULT_CHART_LIST));
+
+                       printWriter.checkError();
+               } catch (IOException e) {
+                       Logger.exception(e);
+               } finally {
+                       CommonUtil.tryClose(fileWriter, buffWriter, printWriter);
+               }
+       }
+
+       private <T> String writeCollection(Collection<T> collection, String key) {
+               StringBuffer subBuffer = new StringBuffer();
+               for (T element : collection) {
+                       if (subBuffer.length() > 0) {
+                               subBuffer.append(SettingConstants.WRITE_CSV_SEPARATOR);
+                       }
+                       subBuffer.append(element.toString());
+               }
+
+               StringBuffer buffer = new StringBuffer();
+               buffer.append(key);
+               buffer.append(SettingConstants.WRITE_CSV_SEPARATOR);
+               buffer.append(subBuffer);
+
+               return buffer.toString();
+       }
+
+       /** getter and setter **/
+
+       public Set<String> getDefaultChartSet() {
+               return Collections.unmodifiableSet(defaultChartSet);
+       }
+
+       public Set<String> getSelectedChartSet() {
+               return Collections.unmodifiableSet(selectedChartSet);
+       }
+
+       public void setSelectedChartSet(Collection<String> selectedChartList) {
+               selectedChartSet.clear();
+               selectedChartSet.addAll(selectedChartList);
+
+               writeLayoutFile();
+       }
+
+       public boolean addSelectedChart(String chartName) {
+               boolean ret = selectedChartSet.add(chartName);
+               writeLayoutFile();
+               return ret;
+       }
+
+       public Set<String> getSelectedPageSet() {
+               return Collections.unmodifiableSet(selectedPageSet);
+       }
+
+       public void setSelectedPageSet(Collection<String> selectedPageList) {
+               this.selectedPageSet.clear();
+               this.selectedPageSet.addAll(selectedPageList);
+       }
+}
index f06085b..6080ea0 100644 (file)
@@ -44,7 +44,6 @@ public class InteractiveEditItemsDialog extends TimelineEditItemsDialog {
                super(parent);
                this.chartView = chartView_;
                this.chartList = InteractiveDataManager.getInstance().getTimelineChartList();
-               this.selectedChartList = InteractiveDataManager.getInstance().getShowTimelineChartList();
                setOkButtonListener(okButtonListener);
        }
 
@@ -54,8 +53,7 @@ public class InteractiveEditItemsDialog extends TimelineEditItemsDialog {
                        TableItem[] tableitems = chartTableViewer.getTable().getItems();
                        ArrayList<Integer> order = new ArrayList<Integer>();
                        ArrayList<Boolean> showInfo = new ArrayList<Boolean>();
-
-                       selectedChartList.clear();
+                       List<TimelineChart> selectedChartList = new ArrayList<TimelineChart>();
 
                        List<TimelineChart> tempChartList = new ArrayList<TimelineChart>(chartList);
                        chartList.clear();
@@ -74,6 +72,7 @@ public class InteractiveEditItemsDialog extends TimelineEditItemsDialog {
                                order.add(itemData.index);
                        }
 
+                       InteractiveDataManager.getInstance().setShowTimelineChartList(selectedChartList);
                        chartView.reArrangeChart(order, showInfo);
                        shell.dispose();
                        RunningDialog = false;
index 5f201be..b0deb66 100644 (file)
@@ -123,6 +123,11 @@ public class InteractiveDataManager extends PageDataManager implements IDAChartS
        public List<TimelineChart> getShowTimelineChartList() {
                return showTimelineChartList;
        }
+       
+       public void setShowTimelineChartList(List<TimelineChart> chartList) {
+               showTimelineChartList.clear();
+               showTimelineChartList.addAll(chartList);
+       }
 
        public void addVariableInfo(InteractiveInfo info) {
                variableInfoList.add(info);
index ab9d6eb..207f9a0 100644 (file)
@@ -31,6 +31,7 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -47,6 +48,7 @@ import org.tizen.dynamicanalyzer.project.Project;
 import org.tizen.dynamicanalyzer.protocol.ProtocolConstants;
 import org.tizen.dynamicanalyzer.setting.SettingDataManager;
 import org.tizen.dynamicanalyzer.setting.TargetData;
+import org.tizen.dynamicanalyzer.setting.UILayoutDataManager;
 import org.tizen.dynamicanalyzer.swap.logparser.LogPackage;
 import org.tizen.dynamicanalyzer.swap.logparser.Logs;
 import org.tizen.dynamicanalyzer.swap.logparser.PageDataManager;
@@ -95,7 +97,6 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer
        private boolean newCustomChart = false;
        private List<TimelineChart> chartList;
        private ArrayList<TimelineChart> newChartList;
-       private List<TimelineChart> selectedChartList;
        private HashMap<String, TimelineChart> chartInstanceMapNameKey;
        private HashMap<Integer, TimelineChart> chartInstanceMapTypeKey;
 
@@ -135,7 +136,6 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer
        private TimelineChartManager() {
                chartList = new ArrayList<TimelineChart>();
                newChartList = new ArrayList<TimelineChart>();
-               selectedChartList = new ArrayList<TimelineChart>();
                chartInstanceMapNameKey = new HashMap<String, TimelineChart>();
                chartInstanceMapTypeKey = new HashMap<Integer, TimelineChart>();
                customChartMap = new HashMap<Integer, UserCustomChart>();
@@ -166,7 +166,6 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer
                initChartMap(new EnergyChart());
 
                loadSavedChartList();
-               loadSelectedChartList();
        }
 
        @Override
@@ -205,32 +204,19 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer
 
        public void loadSelectedChartList(Set<String> list) {
                if (list.size() > 0) {
+                       Set<String> actualSelectedChart = new HashSet<String>();
                        ArrayList<Boolean> showInfo = new ArrayList<Boolean>();
-                       selectedChartList.clear();
 
                        for (int i = 0; i < chartList.size(); i++) {
                                if (list.contains(chartList.get(i).getChartName())) {
-                                       selectedChartList.add(chartList.get(i));
+                                       actualSelectedChart.add(chartList.get(i).getChartName());
                                        showInfo.add(true);
                                } else {
                                        showInfo.add(false);
                                }
                        }
                        AnalyzerUtil.getTimelineComposite().reArrangeChart(null, showInfo);
-               }
-       }
-
-       private void loadSelectedChartList() {
-               List<String> savedSelectedChartNameList = SettingDataManager.INSTANCE
-                               .getSelectedChartList();
-               int size = savedSelectedChartNameList.size();
-               if (size != 0) {
-                       for (int i = 0; i < size; i++) {
-                               TimelineChart chart = getChartInstance(savedSelectedChartNameList.get(i));
-                               if (chart != null) {
-                                       selectedChartList.add(chart);
-                               }
-                       }
+                       UILayoutDataManager.INSTANCE.setSelectedChartSet(actualSelectedChart);
                }
        }
 
@@ -239,19 +225,10 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer
                this.chartList.addAll(chartList);
        }
 
-       public void setSelectedChartList(List<TimelineChart> chartList) {
-               this.selectedChartList.clear();
-               this.selectedChartList.addAll(chartList);
-       }
-
        public List<TimelineChart> getChartList() {
                return chartList;
        }
 
-       public List<TimelineChart> getSelectedChartList() {
-               return selectedChartList;
-       }
-
        private TimelineChart getChartInstance(String chartName) {
                return chartInstanceMapNameKey.get(chartName);
        }
@@ -298,7 +275,6 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer
                        this.newChartList.clear();
                        newCustomChart = false;
                        for (TimelineChart chart : newChartList) {
-                               selectedChartList.add(chart);
                                DAChartBoardItem item = chart.createBoardItem(chartBoard);
 
                                DAChart chartWidget = item.getChart();
@@ -312,13 +288,9 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer
                                chartWidget.addMouseMoveListener(timelineChartMouseEventListener);
                                chartWidget.addMouseTrackListener(new TimelineChartMouseTrackAdapter(chartBoard
                                                .getTimeline()));
-                       }
 
-                       List<String> list = new ArrayList<String>();
-                       for (TimelineChart selectedChart : selectedChartList) {
-                               list.add(selectedChart.getChartName());
+                               UILayoutDataManager.INSTANCE.addSelectedChart(chart.getChartName());
                        }
-                       SettingDataManager.INSTANCE.writeSelectedChartList(list);
                }
 
                for (TimelineChart timelineChart : chartList) {
@@ -346,9 +318,7 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer
                }
 
                chartList.clear();
-               selectedChartList.clear();
                loadSavedChartList();
-               loadSelectedChartList();
                customChartMap.clear();
                customLogParser.clear();
 
index caa3966..92366aa 100644 (file)
@@ -30,6 +30,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
@@ -77,7 +78,7 @@ import org.tizen.dynamicanalyzer.nl.WidgetLabels;
 import org.tizen.dynamicanalyzer.resources.ColorResources;
 import org.tizen.dynamicanalyzer.resources.FontResources;
 import org.tizen.dynamicanalyzer.resources.ImageResources;
-import org.tizen.dynamicanalyzer.setting.SettingDataManager;
+import org.tizen.dynamicanalyzer.setting.UILayoutDataManager;
 import org.tizen.dynamicanalyzer.ui.timeline.chart.TimelineChart;
 import org.tizen.dynamicanalyzer.util.Logger;
 import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
@@ -98,16 +99,15 @@ public class TimelineEditItemsDialog extends DAMessageBox {
        private final static int TITLE_COLUMN_WIDTH = 76;
        private final static int TEXT_COLUMN_WIDTH = 345;
        private final static int MULTILINE_MARGIN = 8;
-       
+
        protected TableViewer chartTableViewer;
        protected List<TimelineChart> chartList = TimelineChartManager.getInstance().getChartList();
-       protected List<TimelineChart> selectedChartList = TimelineChartManager.getInstance().getSelectedChartList();
        private boolean DragItemStartPlg = true;
-       private int swapItemIndexA = 0;         // drag source
-       private int swapItemIndexB = 0;         // drag target
+       private int swapItemIndexA = 0; // drag source
+       private int swapItemIndexB = 0; // drag target
        protected static boolean RunningDialog = false;
-       private Map<Integer, Image> imageMap = new HashMap<Integer, Image>();   // for drag image
-       
+       private Map<Integer, Image> imageMap = new HashMap<Integer, Image>(); // for drag image
+
        public TimelineEditItemsDialog(Shell parent) {
                super(parent);
        }
@@ -119,37 +119,21 @@ public class TimelineEditItemsDialog extends DAMessageBox {
        public void setOkButtonListener(DACustomButtonClickEventListener okButtonListener) {
                this.okButtonListener = okButtonListener;
        }
-       
+
        private DACustomButtonClickEventListener okButtonListener = new DACustomButtonClickEventListener() {
                @Override
                public void handleClickEvent(DACustomButton button) {
-                       TimelineChartManager chartManager = TimelineChartManager.getInstance();
                        TableItem[] tableitems = chartTableViewer.getTable().getItems();
                        ArrayList<Integer> order = new ArrayList<Integer>();
                        ArrayList<Boolean> showInfo = new ArrayList<Boolean>();
 
-                       List<TimelineChart> chartList = new ArrayList<TimelineChart>();
-                       List<TimelineChart> selectedChartList = new ArrayList<TimelineChart>();
-
-//                     StringBuffer strSaveChartNameList = new StringBuffer(
-//                                     CommonConstants.EMPTY);
-//                     StringBuffer strSaveSelectedChartNameList = new StringBuffer(
-//                                     CommonConstants.EMPTY);
-                       List<String> strSaveChartNameList = new ArrayList<String>();
                        List<String> strSaveSelectedChartNameList = new ArrayList<String>();
-                       
-                       for (TableItem item : tableitems) {
-                               TableItemData itemData = (TableItemData)item.getData();
-                               chartList.add(chartManager.getChartInstance(itemData.chartType));
 
-                               strSaveChartNameList.add(itemData.titleText);
-//                             strSaveChartNameList.append(CommonConstants.COMMA);
+                       for (TableItem item : tableitems) {
+                               TableItemData itemData = (TableItemData) item.getData();
 
                                if (itemData.isEnabled) {
-                                       selectedChartList.add(chartManager
-                                                       .getChartInstance(itemData.chartType));
                                        strSaveSelectedChartNameList.add(itemData.titleText);
-//                                     strSaveSelectedChartNameList.append(CommonConstants.COMMA);
                                        showInfo.add(true);
                                } else {
                                        showInfo.add(false);
@@ -158,17 +142,9 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                order.add(itemData.index);
                        }
 
-                       for (int i = tableitems.length; i < chartManager.getChartList()
-                                       .size(); i++) {
-                               chartList.add(chartManager.getChartList().get(i));
-                               selectedChartList.add(chartManager.getChartList().get(i));
-                       }
-
-                       chartManager.setChartList(chartList);
-                       chartManager.setSelectedChartList(selectedChartList);
                        AnalyzerUtil.getTimelineComposite().reArrangeChart(order, showInfo);
-                       SettingDataManager.INSTANCE.writeSelectedChartList(strSaveSelectedChartNameList);
-                       
+                       UILayoutDataManager.INSTANCE.setSelectedChartSet(strSaveSelectedChartNameList);
+
                        shell.dispose();
                        RunningDialog = false;
                }
@@ -215,11 +191,14 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                chartTableViewer.getTable().setLinesVisible(true);
                chartTableViewer.getTable().setBackground(ColorResources.EDIT_CHART_TABLE_SEPARATE_COLOR);
 
-               new TableColumn(chartTableViewer.getTable(), SWT.NONE).setWidth(TITLE_COLUMN_WIDTH);    // Column for Title image
-               new TableColumn(chartTableViewer.getTable(), SWT.NONE).setWidth(TEXT_COLUMN_WIDTH);     // Column for Title text
+               // Column for Title image
+               new TableColumn(chartTableViewer.getTable(), SWT.NONE).setWidth(TITLE_COLUMN_WIDTH);
+               // Column for Title text
+               new TableColumn(chartTableViewer.getTable(), SWT.NONE).setWidth(TEXT_COLUMN_WIDTH);
 
-               int chartListSize = chartList.size();
+               Set<String> selectedChartSet = UILayoutDataManager.INSTANCE.getSelectedChartSet();
 
+               int chartListSize = chartList.size();
                final TableItem[] items = new TableItem[chartListSize];
                for (int i = 0; i < chartListSize; i++) {
                        // setting data per table item
@@ -234,13 +213,8 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                        itemData.description = chartList.get(i).getChartDescriptor();
                        itemData.isEnabled = false;
                        itemData.isHovered = false;
-                       
-                       for (int j = 0; j < selectedChartList.size(); j++) {
-                               if (chartList.get(i).getChartType() == selectedChartList.get(j)
-                                               .getChartType()) {
-                                       itemData.isEnabled = true;
-                                       break;
-                               }
+                       if (selectedChartSet.contains(itemData.titleText)) {
+                               itemData.isEnabled = true;
                        }
                        items[i].setData(itemData);
                }
@@ -258,9 +232,9 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                }
                                case SWT.PaintItem: {
                                        int width = chartTableViewer.getTable().getClientArea().width;
-                                       
+
                                        TableItem item = (TableItem) event.item;
-                                       TableItemData itemData = (TableItemData)item.getData();
+                                       TableItemData itemData = (TableItemData) item.getData();
 
                                        GC gc = event.gc;
                                        gc.setAdvanced(true);
@@ -293,13 +267,14 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                        gc.setBackground(background);
                                        event.detail &= ~SWT.SELECTED;
 
-                                       if (event.index == COLUMN_TITLE) {              // draw column for title image
+                                       if (event.index == COLUMN_TITLE) { // draw column for title image
                                                if (!itemData.isEnabled) {
                                                        gc.setAlpha(51);
                                                }
-                                               gc.drawImage(itemData.titleImage, TITLE_COLUMN_WIDTH / 2 - itemData.titleImage.getBounds().width / 2, 
-                                                               event.y + TABLE_HEIGHT / 2 - itemData.titleImage.getBounds().height / 2);
-                                       } else if (event.index == COLUMN_TEXT) {        // draw column for title text
+                                               gc.drawImage(itemData.titleImage, TITLE_COLUMN_WIDTH / 2
+                                                               - itemData.titleImage.getBounds().width / 2, event.y + TABLE_HEIGHT
+                                                               / 2 - itemData.titleImage.getBounds().height / 2);
+                                       } else if (event.index == COLUMN_TEXT) { // draw column for title text
                                                Image statusImage = ImageResources.ADD_CHART_OFF;
                                                Color titleColor = ColorResources.ADD_CHART_DISABLE_TITLE_COLOR;
                                                Color descriptColor = ColorResources.ADD_CHART_DISABLE_DESCRIPT_COLOR;
@@ -312,24 +287,26 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                                String[] temp = itemData.description.split("\n");
                                                int title_point_y = TITLE_TEXT_OFFSET_Y;
                                                int descript_point_y = DESCRIPT_TEXT_OFFSET_Y;
-                                               if (temp.length == 2) { // multi line, support 2 lines.
+                                               if (temp.length == 2) { // multi line, support 2 lines.
                                                        title_point_y = TITLE_TEXT_OFFSET_Y - MULTILINE_MARGIN;
                                                        descript_point_y = DESCRIPT_TEXT_OFFSET_Y - MULTILINE_MARGIN;
                                                }
                                                gc.setForeground(titleColor);
                                                gc.setFont(FontResources.EDIT_CHART_DLG_ITEM_NAME);
-                                               gc.drawText(itemData.titleText, TITLE_TEXT_POINT_X, event.y + title_point_y, true);
+                                               gc.drawText(itemData.titleText, TITLE_TEXT_POINT_X,
+                                                               event.y + title_point_y, true);
                                                // draw descriptor text
                                                gc.setForeground(descriptColor);
                                                gc.setFont(FontResources.EDIT_CHART_DLG_ITEM_SUB_NAME);
-                                               gc.drawText(itemData.description, TITLE_TEXT_POINT_X, event.y + descript_point_y, true);
+                                               gc.drawText(itemData.description, TITLE_TEXT_POINT_X, event.y
+                                                               + descript_point_y, true);
                                                // draw on/off image
-                                               gc.drawImage(statusImage, width - statusImage.getBounds().width - ENABLE_IMAGE_OFFSET_X, 
-                                                               event.y + ENABLE_IMAGE_OFFSET_Y);
+                                               gc.drawImage(statusImage, width - statusImage.getBounds().width
+                                                               - ENABLE_IMAGE_OFFSET_X, event.y + ENABLE_IMAGE_OFFSET_Y);
                                                // capture image for drag
                                                Image itemImage = imageMap.get(itemData.chartType);
                                                if (itemImage == null) {
-                                                       itemImage = new Image(Display.getDefault(), width-1, TABLE_HEIGHT);
+                                                       itemImage = new Image(Display.getDefault(), width - 1, TABLE_HEIGHT);
                                                        imageMap.put(itemData.chartType, itemImage);
                                                }
                                                gc.copyArea(itemImage, 0, event.y);
@@ -351,10 +328,9 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                chartTableViewer.getTable().addMouseListener(itemZoomMouseListener);
                chartTableViewer.getTable().addMouseTrackListener(mouseTrackListener);
                chartTableViewer.getTable().addMouseMoveListener(mouseMoveListener);
-               
+
                Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
-               DragSource source = new DragSource(chartTableViewer.getTable(),
-                               DND.DROP_MOVE);
+               DragSource source = new DragSource(chartTableViewer.getTable(), DND.DROP_MOVE);
                source.setTransfer(types);
                source.addDragListener(new DragSourceAdapter() {
                        public void dragSetData(DragSourceEvent event) {
@@ -366,7 +342,7 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                event.data = sourceItem.getText();
                                chartTableViewer.getTable().redraw();
                        }
-                       
+
                        @Override
                        public void dragStart(DragSourceEvent event) {
                                // set drag image. this image will be shown below of mouse pointer.
@@ -375,22 +351,20 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                        Logger.warning("drag selection is null.");
                                        return;
                                }
-                               Image dropImage = imageMap.get(((TableItemData)selection.getData()).chartType);
-                               ((TableItemData)selection.getData()).isDrag = true;
+                               Image dropImage = imageMap.get(((TableItemData) selection.getData()).chartType);
+                               ((TableItemData) selection.getData()).isDrag = true;
                                event.image = dropImage;
                                DragItemStartPlg = true;
                                chartTableViewer.getTable().redraw();
                        }
                });
 
-               DropTarget target = new DropTarget(chartTableViewer.getTable(),
-                               DND.DROP_MOVE);
+               DropTarget target = new DropTarget(chartTableViewer.getTable(), DND.DROP_MOVE);
                target.setTransfer(types);
                target.addDropListener(new DropTargetAdapter() {
                        public void dragEnter(DropTargetEvent event) {
                                if (DragItemStartPlg == true) {
-                                       swapItemIndexA = chartTableViewer.getTable()
-                                                       .getSelectionIndex();
+                                       swapItemIndexA = chartTableViewer.getTable().getSelectionIndex();
                                        DragItemStartPlg = false;
                                } else {
                                        chartTableViewer.getTable().deselectAll();
@@ -400,8 +374,7 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                                        : DND.DROP_NONE;
                                }
                                for (int i = 0, n = event.dataTypes.length; i < n; i++) {
-                                       if (TextTransfer.getInstance().isSupportedType(
-                                                       event.dataTypes[i])) {
+                                       if (TextTransfer.getInstance().isSupportedType(event.dataTypes[i])) {
                                                event.currentDataType = event.dataTypes[i];
                                        }
                                }
@@ -425,15 +398,17 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                        /*
                                         * Swap table item
                                         */
-                                       TableItemData itemData_A = (TableItemData)chartTableItems[swapItemIndexA].getData();
-                                       TableItemData itemData_B = (TableItemData)chartTableItems[swapItemIndexB].getData();
+                                       TableItemData itemData_A = (TableItemData) chartTableItems[swapItemIndexA]
+                                                       .getData();
+                                       TableItemData itemData_B = (TableItemData) chartTableItems[swapItemIndexB]
+                                                       .getData();
                                        TableItemData itemData_tmp = itemData_A;
                                        chartTableItems[swapItemIndexA].setData(itemData_B);
                                        chartTableItems[swapItemIndexB].setData(itemData_tmp);
                                }
                                TableItem[] items = chartTableViewer.getTable().getItems();
                                for (int i = 0; i < items.length; i++) {
-                                       ((TableItemData)items[i].getData()).isDrag = false;
+                                       ((TableItemData) items[i].getData()).isDrag = false;
                                }
                                chartTableViewer.getTable().redraw();
                        }
@@ -481,8 +456,7 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                e.gc.setForeground(ColorResources.DIALOG_SUNKEN_1);
                                e.gc.drawLine(rect.x, rect.y, rect.x + rect.width, rect.y);
                                e.gc.setForeground(ColorResources.DIALOG_SUNKEN_2);
-                               e.gc.drawLine(rect.x, rect.y + 1, rect.x + rect.width,
-                                               rect.y + 1);
+                               e.gc.drawLine(rect.x, rect.y + 1, rect.x + rect.width, rect.y + 1);
                        }
                });
 
@@ -496,7 +470,7 @@ public class TimelineEditItemsDialog extends DAMessageBox {
        private void setEditDialogButtonStyle(DAButton button) {
                button.setGradation(ColorResources.EDIT_CHART_BUTTON_NORMAL_COLOR_START,
                                ColorResources.EDIT_CHART_BUTTON_NORMAL_COLOR_END,
-                               ColorResources.EDIT_CHART_BUTTON_PUSH_COLOR_START, 
+                               ColorResources.EDIT_CHART_BUTTON_PUSH_COLOR_START,
                                ColorResources.EDIT_CHART_BUTTON_PUSH_COLOR_END,
                                ColorResources.EDIT_CHART_BUTTON_HOVER_COLOR_START,
                                ColorResources.EDIT_CHART_BUTTON_HOVER_COLOR_END, null, null);
@@ -507,7 +481,7 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                ColorResources.EDIT_CHART_BUTTON_INLINE_PUSH_COLOR,
                                ColorResources.EDIT_CHART_BUTTON_INLINE_HOVER_COLOR, null);
        }
-       
+
        private MouseListener itemZoomMouseListener = new MouseAdapter() {
                @Override
                public void mouseUp(MouseEvent event) {
@@ -520,45 +494,45 @@ public class TimelineEditItemsDialog extends DAMessageBox {
                                return;
                        }
                        TableItem[] chartTableItems = chartTableViewer.getTable().getItems();
-                       TableItemData itemData = (TableItemData)chartTableItems[selectItemIndex].getData();
-                       itemData.isEnabled = !itemData.isEnabled;               // toggle
+                       TableItemData itemData = (TableItemData) chartTableItems[selectItemIndex].getData();
+                       itemData.isEnabled = !itemData.isEnabled; // toggle
                        table.deselectAll();
                        chartTableViewer.getTable().redraw();
                }
        };
-       
+
        private MouseTrackListener mouseTrackListener = new MouseTrackAdapter() {
                @Override
                public void mouseExit(MouseEvent e) {
                        TableItem[] items = chartTableViewer.getTable().getItems();
                        for (int i = 0; i < items.length; i++) {
-                               ((TableItemData)items[i].getData()).isHovered = false;
+                               ((TableItemData) items[i].getData()).isHovered = false;
                        }
                        chartTableViewer.getTable().redraw();
                }
        };
-       
+
        private MouseMoveListener mouseMoveListener = new MouseMoveListener() {
                @Override
                public void mouseMove(MouseEvent e) {
                        TableItem targetItem = findTableItem(e.x, e.y);
-                       
+
                        TableItem[] items = chartTableViewer.getTable().getItems();
                        for (int i = 0; i < items.length; i++) {
                                if (items[i] == targetItem) {
-                                       ((TableItemData)items[i].getData()).isHovered = true;
+                                       ((TableItemData) items[i].getData()).isHovered = true;
                                } else {
-                                       ((TableItemData)items[i].getData()).isHovered = false;
+                                       ((TableItemData) items[i].getData()).isHovered = false;
                                }
                        }
                        chartTableViewer.getTable().redraw();
                }
        };
-       
+
        private TableItem findTableItem(int x, int y) {
                return chartTableViewer.getTable().getItem(new Point(x, y));
        }
-       
+
        protected static class TableItemData {
                public int index;
                public int chartType;
index 2bbbb5b..096e675 100644 (file)
@@ -28,6 +28,7 @@
 package org.tizen.dynamicanalyzer.ui.timeline.common;
 
 import java.util.List;
+import java.util.Set;
 
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.events.SelectionEvent;
@@ -39,6 +40,7 @@ import org.eclipse.swt.widgets.ScrollBar;
 import org.tizen.dynamicanalyzer.common.DASelectionData;
 import org.tizen.dynamicanalyzer.resources.ColorResources;
 import org.tizen.dynamicanalyzer.resources.FontResources;
+import org.tizen.dynamicanalyzer.setting.UILayoutDataManager;
 import org.tizen.dynamicanalyzer.ui.common.SetRangeMarkerMouseMoveListener;
 import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseEventListener;
 import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseTrackAdapter;
@@ -224,8 +226,7 @@ public class TimelineView extends DAViewComposite {
        private void initializeCharts() {
                initIntervalMarkers(chartBoard);
                List<TimelineChart> chartList = timelineChartManager.getChartList();
-               List<TimelineChart> selectedChartList = timelineChartManager
-                               .getSelectedChartList();
+               Set<String> selectedChartSet = UILayoutDataManager.INSTANCE.getSelectedChartSet();
 
                for (int i = 0; i < chartList.size(); i++) {
                        TimelineChart timelineChart = chartList.get(i);
@@ -246,7 +247,7 @@ public class TimelineView extends DAViewComposite {
                                        .addMouseTrackListener(new TimelineChartMouseTrackAdapter(
                                                        chartBoard.getTimeline()));
 
-                       if (selectedChartList.contains(timelineChart)) {
+                       if (selectedChartSet.contains(timelineChart.getChartName())) {
                                chartBoard.showItem(i);
                        } else {
                                chartBoard.hideItem(i);
index 51c7f57..9aad090 100644 (file)
@@ -40,6 +40,7 @@ import org.tizen.dynamicanalyzer.setting.FeatureValueData;
 import org.tizen.dynamicanalyzer.setting.SettingConstants;
 import org.tizen.dynamicanalyzer.setting.SettingDataManager;
 import org.tizen.dynamicanalyzer.setting.TargetData;
+import org.tizen.dynamicanalyzer.setting.UILayoutDataManager;
 import org.tizen.dynamicanalyzer.ui.interactive.data.InteractiveDataManager;
 import org.tizen.dynamicanalyzer.ui.page.BaseView;
 import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager;
@@ -259,24 +260,19 @@ public class SettingDialogManager {
                Set<String> selectedChartList = new HashSet<String>();
 
                // set default chart list
-               List<String> defaultChartList = SettingDataManager.INSTANCE.getDefaultChartList();
+               Set<String> defaultChartList = UILayoutDataManager.INSTANCE.getDefaultChartSet();
                if (defaultChartList.size() > 0) {
                        selectedChartList.addAll(defaultChartList);
                }
 
                // set selected chart list
                TargetData target = SettingDataManager.INSTANCE.getConnectedTarget();
-               Set<String> targetChartList = SettingDataManager.INSTANCE.getSelectedChartList(target
+               Set<String> targetChartList = SettingDataManager.INSTANCE.getSelectedChartSet(target
                                .getTargetName());
                selectedChartList.addAll(targetChartList);
-               selectedChartList.addAll(SettingDataManager.INSTANCE.getOptionsSelectedFeatureChartList());
+               selectedChartList.addAll(SettingDataManager.INSTANCE.getOptionsSelectedFeatureChartSet());
 
                // update chart list in timeline page
                TimelineChartManager.getInstance().loadSelectedChartList(selectedChartList);
-
-               // TODO : selectedChartList remove?
-               if (selectedChartList.size() > 0) {
-                       SettingDataManager.INSTANCE.setSelectedChartList(selectedChartList);
-               }
        }
 }
index 05c2bb3..7aa6c1a 100644 (file)
@@ -49,11 +49,13 @@ import org.tizen.dynamicanalyzer.setting.SettingDataManager;
 import org.tizen.dynamicanalyzer.setting.TargetData;
 import org.tizen.dynamicanalyzer.setting.Template;
 import org.tizen.dynamicanalyzer.setting.TemplateData;
+import org.tizen.dynamicanalyzer.setting.UILayoutDataManager;
 import org.tizen.dynamicanalyzer.util.InternalLogger;
 import org.tizen.dynamicanalyzer.util.Logger;
 
 public class SettingDataManagerTest {
        SettingDataManager setting = SettingDataManager.INSTANCE;
+       UILayoutDataManager layout = UILayoutDataManager.INSTANCE;
 
        @BeforeClass
        public static void initSettingData() {
@@ -61,6 +63,11 @@ public class SettingDataManagerTest {
 
                // read file list
                SettingConstants.SettingFilePath = SettingDataManagerTest.class.getResource("").getPath();
+
+               @SuppressWarnings("unused")
+               SettingDataManager s = SettingDataManager.INSTANCE;
+               @SuppressWarnings("unused")
+               UILayoutDataManager l = UILayoutDataManager.INSTANCE;
        }
 
        @AfterClass
@@ -94,8 +101,6 @@ public class SettingDataManagerTest {
 
        @Test
        public void testInitFeatureData() {
-               SettingDataManager setting = SettingDataManager.INSTANCE;
-
                FeatureData feature = Feature.SYSTEM_SAMPLING_RATE.getData();
                assertEquals(ConfigureLabels.FEATURE_DETAIL_VALUE_SYSTEM_SAMPLING_RATE,
                                feature.getFeatureName());
@@ -106,10 +111,6 @@ public class SettingDataManagerTest {
 
                feature = Feature.OPENGL_ANALYSIS.getData();
                assertEquals(3, feature.getOverheadRanking());
-
-               // null check
-               setting.initFeatureData("10000|Auto Stop|0||||||||");
-               assertNull(Feature.getFeature(10000));
        }
 
        @Test
@@ -117,14 +118,6 @@ public class SettingDataManagerTest {
                TemplateData template = Template.TEMPLATE_BOTTLENECK.getData();
                assertEquals(ConfigureLabels.TEMPLATE_NAME_BOTTLENECK, template.getTemplateName());
                assertEquals(ConfigureLabels.TEMPLATE_DESCRIPTION_BOTTLENECK, template.getDescription());
-
-               // null check
-               try {
-                       Whitebox.invokeMethod(SettingDataManager.INSTANCE, "initTemplateData", "10000|Custom");
-                       assertNull(Template.getTemplate(10000));
-               } catch (Exception e) {
-                       Logger.exception(e);
-               }
        }
 
        @Test
@@ -132,8 +125,8 @@ public class SettingDataManagerTest {
                // check Available Target List
                Map<String, TargetData> targetListMap = setting.getTargetListMap();
                assertEquals(1, targetListMap.size());
-               assertTrue(setting.isTarget("mobile"));
-               assertFalse(setting.isTarget("wearable"));
+               assertTrue(targetListMap.get("mobile") != null);
+               assertFalse(targetListMap.get("wearable") != null);
 
                // check Selected Target
                assertEquals("mobile", setting.getSelectedTarget());
@@ -141,18 +134,18 @@ public class SettingDataManagerTest {
                assertEquals("mobile", initTarget);
 
                // check Selected Chart List
-               List<String> chartList = setting.getSelectedChartList();
-               assertEquals(3, chartList.size());
-               assertEquals("CPU", chartList.get(0));
-               assertEquals("CPU core", chartList.get(1));
-               assertEquals("CPU frequency", chartList.get(2));
+               Set<String> chartSet = layout.getSelectedChartSet();
+               assertEquals(3, chartSet.size());
+               assertTrue(chartSet.contains("CPU"));
+               assertTrue(chartSet.contains("CPU core"));
+               assertTrue(chartSet.contains("CPU frequency"));
 
                // check Default Chart List
-               chartList = setting.getDefaultChartList();
-               assertEquals(3, chartList.size());
-               assertEquals("CPU", chartList.get(0));
-               assertEquals("CPU core", chartList.get(1));
-               assertEquals("CPU frequency", chartList.get(2));
+               chartSet = layout.getDefaultChartSet();
+               assertEquals(3, chartSet.size());
+               assertTrue(chartSet.contains("CPU"));
+               assertTrue(chartSet.contains("CPU core"));
+               assertTrue(chartSet.contains("CPU frequency"));
 
                // check Default Protocol List
                List<Feature> defaultFeatureList = setting.getDefaultFeatureList();
@@ -195,16 +188,19 @@ public class SettingDataManagerTest {
        public void testWriteChartList() {
                try {
                        // check Selected Chart List
-                       String result = Whitebox.invokeMethod(setting, "writeList",
-                                       (Object) setting.getSelectedChartList(),
-                                       SettingConstants.KEY_SELECTED_CHART_LIST);
-                       assertEquals("Selected Chart List|CPU|CPU core|CPU frequency", result);
+                       String result = Whitebox
+                                       .invokeMethod(layout, "writeCollection", (Object) layout.getSelectedChartSet(),
+                                                       SettingConstants.KEY_SELECTED_CHART_LIST);
+                       assertTrue(result.length() == 46);
+                       assertTrue(result.startsWith("Selected Chart List|CPU"));
+                       assertTrue(result.matches(".*CPU.*CPU.*CPU.*"));
 
                        // check Default Chart List
-                       result = Whitebox
-                                       .invokeMethod(setting, "writeList", (Object) setting.getDefaultChartList(),
-                                                       SettingConstants.KEY_DEFAULT_CHART_LIST);
-                       assertEquals("Default Chart List|CPU|CPU core|CPU frequency", result);
+                       result = Whitebox.invokeMethod(layout, "writeCollection",
+                                       (Object) layout.getDefaultChartSet(), SettingConstants.KEY_DEFAULT_CHART_LIST);
+                       assertTrue(result.length() == 45);
+                       assertTrue(result.startsWith("Default Chart List|CPU"));
+                       assertTrue(result.matches(".*CPU.*CPU.*CPU.*"));
                } catch (Exception e) {
                        Logger.exception(e);
                }
@@ -224,7 +220,7 @@ public class SettingDataManagerTest {
        @Test
        public void testWriteOverheadRangeList() {
                try {
-                       String result = Whitebox.invokeMethod(setting, "writeList",
+                       String result = Whitebox.invokeMethod(setting, "writeCollection",
                                        (Object) setting.getTotalOverheadRange(),
                                        SettingConstants.KEY_TOTAL_OVERHEAD_RANGE);
                        assertEquals("Total Overhead Range|1000000|3000000|7000000|15000000", result);
@@ -263,7 +259,8 @@ public class SettingDataManagerTest {
                        assertEquals(Feature.THREAD_ANALYSIS.getIndex(), feature.getFeatureIndex());
 
                        FeatureValueData featureValue = Whitebox.invokeMethod(setting, "getFeatureValueData",
-                                       (Object) setting.getOptionsSelectedFeatureList(), (Object)Feature.getFeature(0));
+                                       (Object) setting.getOptionsSelectedFeatureList(),
+                                       (Object) Feature.getFeature(0));
                        assertNull(featureValue);
 
                        // copyFeatureList()
@@ -304,11 +301,11 @@ public class SettingDataManagerTest {
                        assertEquals(800000, featureOverheadValue);
 
                        double count = Whitebox.invokeMethod(setting, "calculateCallcount", (Object) null,
-                                       (Object)Feature.FUNCTION_SAMPLING_RATE, true);
+                                       (Object) Feature.FUNCTION_SAMPLING_RATE, true);
                        assertEquals(3000, count, 0);
 
                        count = Whitebox.invokeMethod(setting, "calculateCallcount", setting.getTarget(null),
-                                       (Object)Feature.FUNCTION_SAMPLING_RATE, false);
+                                       (Object) Feature.FUNCTION_SAMPLING_RATE, false);
                        assertEquals(3000, count, 0);
                } catch (Exception e) {
                        Logger.exception(e);
@@ -317,13 +314,6 @@ public class SettingDataManagerTest {
 
        @Test
        public void testSettingOperation() {
-               try {
-                       Whitebox.invokeMethod(setting, "parseSettingData", "testConfigFile");
-                       assertFalse(setting.isParsingSuccess());
-               } catch (Exception e) {
-                       Logger.exception(e);
-               }
-
                TargetData target = setting.getTarget("wearable");
                assertNull(target);
                target = setting.getTarget("mobile");
@@ -337,10 +327,10 @@ public class SettingDataManagerTest {
                assertTrue(list.contains("Timeline"));
                assertTrue(list.contains("Summary"));
 
-               list = setting.getSelectedChartList("test-target");
+               list = setting.getSelectedChartSet("test-target");
                assertNull(list);
 
-               list = setting.getSelectedChartList("mobile");
+               list = setting.getSelectedChartSet("mobile");
                assertEquals(1, list.size());
                assertTrue(list.contains("CPU"));
 
@@ -363,7 +353,7 @@ public class SettingDataManagerTest {
                assertEquals(10, featureValue);
 
                // options selected feature chart list
-               list = setting.getOptionsSelectedFeatureChartList();
+               list = setting.getOptionsSelectedFeatureChartSet();
                assertEquals(1, list.size());
                assertTrue(list.contains("Screenshot"));
 
diff --git a/org.tizen.dynamicanalyzer/test/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/data/layout b/org.tizen.dynamicanalyzer/test/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/data/layout
new file mode 100644 (file)
index 0000000..982f364
--- /dev/null
@@ -0,0 +1,2 @@
+Selected Chart List|CPU|CPU core|CPU frequency
+Default Chart List|CPU|CPU core|CPU frequency
index 9416344..db22b1e 100644 (file)
@@ -3,8 +3,6 @@ Log Level|4
 Debug Print|N
 Available Target List|mobile
 Selected Target|mobile
-Selected Chart List|CPU|CPU core|CPU frequency
-Default Chart List|CPU|CPU core|CPU frequency
 Options Selected Feature List|5002:0
 Default Feature List|2|3|103
 Total Overhead Range|1000000|3000000|7000000|15000000