From 982ad5c035f72e9febd3177664c1f5f0bdcebbe5 Mon Sep 17 00:00:00 2001 From: heeyoung Date: Mon, 1 Sep 2014 12:05:04 +0900 Subject: [PATCH] Setting : create setting information class Change-Id: I4a4d7be4a3d46e075671192760d53c6889c9d4fd Signed-off-by: heeyoung --- .../org/tizen/dynamicanalyzer/nl/WidgetLabels.java | 5 + .../dynamicanalyzer/nl/WidgetLabels.properties | 5 + .../tizen/dynamicanalyzer/nl/AnalyzerLabels.java | 1 + .../dynamicanalyzer/nl/AnalyzerLabels.properties | 1 + .../ui/toolbar/setting/FeatureData.java | 193 ++++++++++ .../ui/toolbar/setting/FeatureValueData.java | 48 +++ .../ui/toolbar/setting/SettingDataManager.java | 39 ++ .../ui/toolbar/setting/TargetData.java | 426 +++++++++++++++++++++ .../ui/toolbar/setting/TemplateData.java | 119 ++++++ 9 files changed, 837 insertions(+) create mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FeatureData.java create mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FeatureValueData.java create mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/SettingDataManager.java create mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/TargetData.java create mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/TemplateData.java diff --git a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/nl/WidgetLabels.java b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/nl/WidgetLabels.java index 21ceed0..35e3519 100644 --- a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/nl/WidgetLabels.java +++ b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/nl/WidgetLabels.java @@ -11,7 +11,12 @@ public class WidgetLabels extends NLS { public static String APPLY; public static String OK; public static String CANCEL; + public static String REVERT; + public static String DETAIL; + public static String RUN; + public static String NEXT; + public static String YES; public static String NO; diff --git a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/nl/WidgetLabels.properties b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/nl/WidgetLabels.properties index 26c42d9..d605f51 100644 --- a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/nl/WidgetLabels.properties +++ b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/nl/WidgetLabels.properties @@ -4,6 +4,11 @@ OFF=Off APPLY=Apply OK=Ok CANCEL=Cancel +REVERT=Revert + +DETAIL=Detail +RUN=Run +NEXT=Next YES=Yes NO=No diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/AnalyzerLabels.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/AnalyzerLabels.java index 2e1f711..3006fdd 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/AnalyzerLabels.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/AnalyzerLabels.java @@ -69,6 +69,7 @@ public class AnalyzerLabels extends NLS { public static String CONFIGURATION; public static String REPLAYEDIT; public static String WELCOME; + public static String SETTING_TITLE; // Source tooltip public static String SOURCE_NOT_EXIST; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/AnalyzerLabels.properties b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/AnalyzerLabels.properties index d1d3556..782405f 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/AnalyzerLabels.properties +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/AnalyzerLabels.properties @@ -33,6 +33,7 @@ ABOUT_TITLE=About Tizen Dynamic Analyzer LICENSE=License CONFIGURATION=Configuration WELCOME=Welcome +SETTING_TITLE=Settings # SingletonInfoDlg. REPLAYEDIT=Replay Editor diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FeatureData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FeatureData.java new file mode 100644 index 0000000..2e66259 --- /dev/null +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FeatureData.java @@ -0,0 +1,193 @@ +/* + * Dynamic Analyzer + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Heeyoung Hwang + * Juyoung Kim + * + * 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.ui.toolbar.setting; + +import java.util.ArrayList; +import java.util.List; + +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; +import org.tizen.dynamicanalyzer.constant.CommonConstants; + +public class FeatureData { + + public static final int FEATURE_TYPE_MAIN = 0; + public static final int FEATURE_TYPE_SUB = 1; + public static final int FEATURE_TYPE_DETAIL = 2; + + private String targetName = null; + + private String featureName = null; + private int featureType = FEATURE_TYPE_MAIN; + private String parentName = null; + private String description = null; + private List pageList = null; + private List chartList = null; + + private int minValue = 0; + private int maxValue = 0; + private long swapValue = AnalyzerConstants.FEATURE_OFF; // 0x0000 + private long overheadValue = AnalyzerConstants.FEATURE_OFF; // 0x0000 + + public FeatureData(String targetName, String featureName) { + this.targetName = targetName; + this.featureName = featureName; + } + + public String getTargetName() { + return targetName; + } + + public void setTargetName(String targetName) { + this.targetName = targetName; + } + + public String getFeatureName() { + return featureName; + } + + public void setFeatureName(String featureName) { + this.featureName = featureName; + } + + public int getFeatureType() { + return featureType; + } + + public void setFeatureType(int featureType) { + this.featureType = featureType; + } + + public String getParentName() { + return parentName; + } + + public void setParentName(String parentName) { + this.parentName = parentName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public int getMinValue() { + return minValue; + } + + public void setMinValue(String minValue) { + if (isValidValue(minValue)) { + this.minValue = Integer.parseInt(minValue); + } + } + + public int getMaxValue() { + return maxValue; + } + + public void setMaxValue(String maxValue) { + if (isValidValue(maxValue)) { + this.maxValue = Integer.parseInt(maxValue); + } + } + + public long getSwapValue() { + return swapValue; + } + + public void setSwapValue(String swapValue) { + if (isValidValue(swapValue)) { + this.swapValue = Long.parseLong(swapValue); + } + } + + public long getOverheadValue() { + return overheadValue; + } + + public void setOverheadValue(String overheadValue) { + if (isValidValue(overheadValue)) { + this.overheadValue = Long.parseLong(overheadValue); + } + } + + public List getPageList() { + if (pageList == null) { + pageList = new ArrayList(); + } + return pageList; + } + + public List getChartList() { + if (chartList == null) { + chartList = new ArrayList(); + } + return chartList; + } + + /** + * When choosing a feature, which generates a list of pages. + * (example Timeline, File, Thread, etc) + * + * @param data Page Information + */ + public void makePageList(String data) { + if (data != null) { + List pages = getPageList(); + + String list[] = data.split(CommonConstants.DASH); + for (int i = 0; i < list.length; i++) { + pages.add(list[i]); + } + } // else : do nothing + } + + /** + * When choosing a feature, which generates a list of charts. + * (example CPU, Disk IO, Energy, etc) + * + * @param data Chart Information + */ + public void makeChartList(String data) { + if (data != null) { + List charts = getChartList(); + + String list[] = data.split(CommonConstants.DASH); + for (int i = 0; i < list.length; i++) { + charts.add(list[i]); + } + } // else : do nothing + } + + private boolean isValidValue(String value) { + if ((null != value) && (CommonConstants.EMPTY.equals(value) == false)) { + return true; + } + return false; + } +} diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FeatureValueData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FeatureValueData.java new file mode 100644 index 0000000..173e1f3 --- /dev/null +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FeatureValueData.java @@ -0,0 +1,48 @@ +/* + * Dynamic Analyzer + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Heeyoung Hwang + * Juyoung Kim + * + * 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.ui.toolbar.setting; + +public class FeatureValueData { + + private String featureName = null; + private int value = 0; + + public String getFeatureName() { + return featureName; + } + + public void setFeatureName(String featureName) { + this.featureName = featureName; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } +} diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/SettingDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/SettingDataManager.java new file mode 100644 index 0000000..a412615 --- /dev/null +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/SettingDataManager.java @@ -0,0 +1,39 @@ +/* + * Dynamic Analyzer + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Heeyoung Hwang + * Juyoung Kim + * + * 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.ui.toolbar.setting; + +public class SettingDataManager { + + // key name in setting file + public static final String KEY_TARGET_LIST = "Target List"; + public static final String KEY_SELECTED_TARGET = "Selected Target"; + public static final String KEY_SELECTED_TEMPLATE = "Selected Template"; + public static final String KEY_SELECTED_FEATURE_LIST = "Selected FeatureList"; + public static final String KEY_AVAILABLE_CHART_LIST = "Available Chart List"; + public static final String KEY_SELECTED_CHART_LIST = "Selected Chart List"; + public static final String KEY_SHOW_INITIAL = "Show initial"; + public static final String AUTO_STOP = "Auto Stop"; +} diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/TargetData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/TargetData.java new file mode 100644 index 0000000..fd05560 --- /dev/null +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/TargetData.java @@ -0,0 +1,426 @@ +/* + * Dynamic Analyzer + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Heeyoung Hwang + * Juyoung Kim + * + * 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.ui.toolbar.setting; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; +import org.tizen.dynamicanalyzer.constant.CommonConstants; +import org.tizen.dynamicanalyzer.util.Logger; + +public class TargetData { + + private String targetName = null; + + // feature key index + public static final int FEATURE_KEY_TARGET_NAME = 0; + public static final int FEATURE_KEY_FEATURE_NAME = 1; + public static final int FEATURE_KEY_FEATURE_TYPE = 2; + public static final int FEATURE_KEY_PARENT_NAME = 3; + public static final int FEATURE_KEY_DESCRIPTION = 4; + public static final int FEATURE_KEY_PAGE_LIST = 5; + public static final int FEATURE_KEY_CHART_LIST = 6; + public static final int FEATURE_KEY_MIN_VALUE = 7; + public static final int FEATURE_KEY_MAX_VALUE = 8; + public static final int FEATURE_KEY_SWAP_VALUE = 9; + public static final int FEATURE_KEY_OVERHEAD_VALUE = 10; + + // template key index + public static final int TEMPLATE_KEY_TARGET_NAME = 0; + public static final int TEMPLAT_KEY_TEMPLAT_NAME = 1; + public static final int TEMPLAT_KEY_DESCRIPTION = 2; + + // available information + private HashMap availableTemplateListMap = null; + private HashMap availableFeatureListMap = null; + + // dialog selected information + private String selectedTemplate = null; + private List selectedFeatureList = null; + + // init selected information : for revert button + private String initTemplate = null; + private List initFeatureList = null; + + + public TargetData(String targetName) { + this.targetName = targetName; + } + + public String getTargetName() { + return targetName; + } + + public void setTargetName(String targetName) { + this.targetName = targetName; + } + + public String getSelectedTemplate() { + return selectedTemplate; + } + + public void setSelectedTemplate(String selectedTemplate) { + if (this.initTemplate == null) { + this.initTemplate = selectedTemplate; + } + this.selectedTemplate = selectedTemplate; + } + + public HashMap getAvailableTemplateListMap() { + if (availableTemplateListMap == null) { + availableTemplateListMap = new HashMap(); + } + return availableTemplateListMap; + } + + public boolean isAvailableTemplate(String templateName) { + HashMap map = getAvailableTemplateListMap(); + if (map.get(templateName) == null) { + return false; + } + return true; + } + + public TemplateData getAvailableTemplate(String templateName) { + HashMap map = getAvailableTemplateListMap(); + return map.get(templateName); + } + + public HashMap getAvailableFeatureListMap() { + if (availableFeatureListMap == null) { + availableFeatureListMap = new HashMap(); + } + return availableFeatureListMap; + } + + private boolean isAvailableFeature(String featureName) { + HashMap map = getAvailableFeatureListMap(); + if (map.get(featureName) == null) { + return false; + } + return true; + } + + public FeatureData getAvailableFeature(String featureName) { + HashMap map = getAvailableFeatureListMap(); + return map.get(featureName); + } + + public String getParentFeatureName(String featureName) { + if (isAvailableFeature(featureName) == true) { + HashMap map = getAvailableFeatureListMap(); + FeatureData feature = map.get(featureName); + return feature.getParentName(); + } else { + Logger.debug("does not exist featureName : " + featureName); + } + return null; + } + + public String getOptionFeatureName(String featureName) { + if (isAvailableFeature(featureName) == true) { + HashMap map = getAvailableFeatureListMap(); + for (Map.Entry entry : map.entrySet()) { + FeatureData feature = entry.getValue(); + if ((feature.getFeatureType() == FeatureData.FEATURE_TYPE_DETAIL) && + (featureName.equals(feature.getParentName()) == true)) { + return feature.getFeatureName(); + } // else : do nothing + } + } else { + Logger.debug("does not exist featureName : " + featureName); + } + return null; + } + + public List getSelectedFeatureList() { + if (selectedFeatureList == null) { + selectedFeatureList = new ArrayList(); + } + return selectedFeatureList; + } + + public boolean isSelectedFeature(String featureName) { + List selectedFeatures = getSelectedFeatureList(); + FeatureValueData feature = getFeatureValueData(selectedFeatures, featureName); + if (feature != null) { + return true; + } + return false; + } + + private FeatureValueData getFeatureValueData(List featureList, String featureName) { + // null check + if ((featureList == null) || (featureName == null)) { + return null; + } // else : search FeatureValueData object + + for (int i = 0; i < featureList.size(); i++) { + if (featureList.get(i).getFeatureName().equals(featureName) == true) { + return featureList.get(i); + } // else : do nothing + } + return null; + } + + /** + * Add the selected feature. + * + * @param featureName featureName + * @param featureValue featureValue + */ + public void addSelectedFeature(String featureName, int featureValue) { + List featureList = getSelectedFeatureList(); + FeatureValueData feature = getFeatureValueData(featureList, featureName); + // create FeatureValueData + if (feature == null) { + feature = new FeatureValueData(); + feature.setFeatureName(featureName); + featureList.add(feature); + } // else : set value + + feature.setValue(featureValue); + } + + /** + * Delete from the list of features that have been deselected. + * + * @param featureName featureName + */ + public void deleteSelectedFeature(String featureName) { + List featureList = getSelectedFeatureList(); + for (int i = 0; i < featureList.size(); i++) { + if (featureList.get(i).getFeatureName().equals(featureName) == true) { + featureList.remove(i); + } // else : do nothing + } + } + + /** + * Get the value of the selected feature. + * + * @param featureName featureName + * + * @return featureValue (If the feature is not selected, returns -1.) + */ + public int getSelectedFeatureValue(String featureName) { + List selectedFeatures = getSelectedFeatureList(); + FeatureValueData feature = getFeatureValueData(selectedFeatures, featureName); + if (feature == null) { + return -1; + } + return feature.getValue(); + } + + /** + * Get the swap value of the selected feature. + * + * @param featureName featureName + * + * @return feature swap value (If the feature is not selected, returns 0x0000.) + */ + public long getSelectedFeatureSwapValue(String featureName) { + if (isSelectedFeature(featureName) == true) { + HashMap map = getAvailableFeatureListMap(); + FeatureData feature = map.get(featureName); + return feature.getSwapValue(); + } + return AnalyzerConstants.FEATURE_OFF; + } + + /** + * Generates a list of available template. + * + * @param list Template information list + */ + public void makeAvailableTemplateListMap(String list[]) { + HashMap map = getAvailableTemplateListMap(); + TemplateData template = null; + + // search template + if (isAvailableTemplate(list[TEMPLAT_KEY_TEMPLAT_NAME]) == false) { + template = new TemplateData(list[TEMPLATE_KEY_TARGET_NAME], list[TEMPLAT_KEY_TEMPLAT_NAME]); + map.put(list[TEMPLAT_KEY_TEMPLAT_NAME], template); + } else { + template = map.get(list[TEMPLAT_KEY_TEMPLAT_NAME]); + } + + template.setDescription(list[TEMPLAT_KEY_DESCRIPTION]); + + // make feature list + for (int i = 3; i < list.length; i++) { + template.makeFeatureList(list[i]); + } + } + + /** + * Generates a list of available feature. + * + * @param list Feature information list + */ + public void makeAvailableFeatureListMap(String list[]) { + HashMap map = getAvailableFeatureListMap(); + FeatureData feature = null; + + // search feature + if (isAvailableFeature(list[FEATURE_KEY_FEATURE_NAME]) == false) { + feature = new FeatureData(list[FEATURE_KEY_TARGET_NAME], list[FEATURE_KEY_FEATURE_NAME]); + map.put(list[FEATURE_KEY_FEATURE_NAME], feature); + } else { + feature = map.get(list[FEATURE_KEY_FEATURE_NAME]); + } + + feature.setFeatureType(Integer.parseInt(list[FEATURE_KEY_FEATURE_TYPE])); + + // set parentName + if ((null != list[FEATURE_KEY_PARENT_NAME]) && + (CommonConstants.EMPTY.equals(list[FEATURE_KEY_PARENT_NAME]) == false)) { + if (isAvailableFeature(list[FEATURE_KEY_PARENT_NAME]) == true) { + feature.setParentName(list[FEATURE_KEY_PARENT_NAME]); + } + } // else : main feature + + feature.setDescription(list[FEATURE_KEY_DESCRIPTION]); + feature.makePageList(list[FEATURE_KEY_PAGE_LIST]); + feature.makeChartList(list[FEATURE_KEY_CHART_LIST]); + feature.setMinValue(list[FEATURE_KEY_MIN_VALUE]); + feature.setMaxValue(list[FEATURE_KEY_MAX_VALUE]); + feature.setSwapValue(list[FEATURE_KEY_SWAP_VALUE]); + feature.setOverheadValue(list[FEATURE_KEY_OVERHEAD_VALUE]); + } + + /** + * Generates a list of selected feature. + * + * @param list Feature information list + */ + public void makeSelectedFeatureList(String list[]) { + List featureList = getSelectedFeatureList(); + + for (int i = 2; i < list.length; i++) { + String valueList[] = list[i].split(CommonConstants.COLON); + FeatureValueData feature = new FeatureValueData(); + feature.setFeatureName(valueList[0]); + + if (valueList.length > 1) { + feature.setValue(Integer.parseInt(valueList[1])); + } // else : feature is check status + + // validation : available feature + if (isAvailableFeature(valueList[0]) == true) { + featureList.add(feature); + } // else : invalid feature + } + + // init Feature list + if (initFeatureList == null) { + initFeatureList = new ArrayList(); + initFeatureList.addAll(featureList); + } + } + + /** + * Write the selected template/feature information in the setting file. + * + * @param writer setting file Writer + * + * @throws IOException + */ + public void writeSelectedData(PrintWriter writer) throws IOException { + writer.println(SettingDataManager.KEY_SELECTED_TEMPLATE + CommonConstants.COMMA + + targetName + CommonConstants.COMMA + selectedTemplate); + writer.println(SettingDataManager.KEY_SELECTED_FEATURE_LIST + CommonConstants.COMMA + + targetName + CommonConstants.COMMA + writeSelectedFeatureListData()); + writer.checkError(); + } + + private String writeSelectedFeatureListData() { + StringBuffer buffer = new StringBuffer(); + List list = getSelectedFeatureList(); + for (int i = 0; i < list.size(); i++) { + FeatureValueData feature = list.get(i); + + buffer.append(feature.getFeatureName()); + 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 < list.size() -1) { + buffer.append(CommonConstants.COMMA); + } // else : the last value will be written to a csv file does not contain a comma. + } + return buffer.toString(); + } + + public boolean changedFeatures() { + // check template + if (initTemplate.equals(selectedTemplate) == false) { + return true; + } + + // check feature + List featureList = getSelectedFeatureList(); + if (featureList.size() != initFeatureList.size()) { + return true; + } + + for (int i = 0; i < featureList.size(); i++) { + // check featureName + FeatureValueData selectedFeature = featureList.get(i); + FeatureValueData initFeature = getFeatureValueData(initFeatureList, selectedFeature.getFeatureName()); + if (initFeature == null) { + return true; + } else { + // check value + if (getAvailableFeature(selectedFeature.getFeatureName()).getFeatureType() + == FeatureData.FEATURE_TYPE_DETAIL) { + if (selectedFeature.getValue() != initFeature.getValue()) { + return true; + } // else : return false; + } + } + } + return false; + } + + public Set getSelectedPageList() { + Set selectedPageList = new HashSet(); + List featureList = getSelectedFeatureList(); + for (int i = 0; i < featureList.size(); i++) { + FeatureData feature = getAvailableFeature(featureList.get(i).getFeatureName()); + selectedPageList.addAll(feature.getPageList()); + } + + return selectedPageList; + } +} diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/TemplateData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/TemplateData.java new file mode 100644 index 0000000..6ff63c4 --- /dev/null +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/TemplateData.java @@ -0,0 +1,119 @@ +/* + * Dynamic Analyzer + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Heeyoung Hwang + * Juyoung Kim + * + * 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.ui.toolbar.setting; + +import java.util.ArrayList; +import java.util.List; + +import org.tizen.dynamicanalyzer.constant.CommonConstants; + +public class TemplateData { + + private String targetName = null; + + private String templateName = null; + private String description = null; + private List featureList = null; + + public TemplateData(String targetName, String templateName) { + this.targetName = targetName; + this.templateName = templateName; + } + + public String getTargetName() { + return targetName; + } + + public void setTargetName(String targetName) { + this.targetName = targetName; + } + + public String getTemplateName() { + return templateName; + } + + public void setTemplateName(String templateName) { + this.templateName = templateName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public List getFeatureList() { + if (featureList == null) { + featureList = new ArrayList(); + } + return featureList; + } + + /** + * Generates a list of features included in the template. + * + * @param data Feature information + */ + public void makeFeatureList(String data) { + if (data != null) { + List features = getFeatureList(); + + // format : "featureName:featureValue" + String valueList[] = data.split(CommonConstants.COLON); + + // set featureName + FeatureValueData feature = getFeatureValueData(valueList[0]); + if (feature == null) { + feature = new FeatureValueData(); + feature.setFeatureName(valueList[0]); + features.add(feature); + } + + // set featureValue + if (valueList.length > 1) { + feature.setValue(Integer.parseInt(valueList[1])); + } // else : feature is check status + } // else : do nothing + } + + private FeatureValueData getFeatureValueData(String featureName) { + // null check + List features = getFeatureList(); + if ((features == null) || (featureName == null)) { + return null; + } // else : search FeatureValueData object + + for (int i = 0; i < features.size(); i++) { + if (features.get(i).getFeatureName().equals(featureName) == true) { + return features.get(i); + } // else : do nothing + } + return null; + } + +} -- 2.7.4