public class CommonPageLables extends NLS {
private static final String BUNDLE_NAME = "org.tizen.dynamicanalyzer.nl.CommonPageLables"; //$NON-NLS-1$
+ public static String COMMON_DATA_COLUMN_KEY;
public static String COMMON_DATA_COLUMN_NUMBER;
public static String COMMON_DATA_COLUMN_TIME;
public static String COMMON_DATA_COLUMN_NAME;
+COMMON_DATA_COLUMN_KEY=Key
COMMON_DATA_COLUMN_NUMBER=#
COMMON_DATA_COLUMN_TIME=Time
COMMON_DATA_COLUMN_NAME=Name
--- /dev/null
+package org.tizen.dynamicanalyzer.ui.views.pageInfo;
+
+import org.eclipse.swt.graphics.Color;
+
+public class PageChartGraphItem {
+ private String name;
+ private int PageDataItemIndex;
+ private long time;
+ private Color eventColor;
+
+ public PageChartGraphItem(int PageDataItemIndex, long time, Color eventColor) {
+ this.PageDataItemIndex = PageDataItemIndex;
+ this.time = time;
+ this.eventColor = eventColor;
+ }
+
+ public int getPageDataItemIndex() {
+ return PageDataItemIndex;
+ }
+
+ public void setPageDataItemIndex(int pageDataItemIndex) {
+ PageDataItemIndex = pageDataItemIndex;
+ }
+
+ public Color getEventColor() {
+ return eventColor;
+ }
+
+ public void setEventColor(Color eventColor) {
+ this.eventColor = eventColor;
+ }
+
+ public long getTime() {
+ return time;
+ }
+
+ public void setTime(long time) {
+ this.time = time;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
--- /dev/null
+package org.tizen.dynamicanalyzer.ui.views.pageInfo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.ui.widgets.DAPageChart.DAPageChart;
+
+public class PageChartItem {
+ private String text;
+ private DAPageChart chart = null;
+ private PageChartItem parent = null;
+ private List<PageChartItem> children = new ArrayList<PageChartItem>();
+ private List<PageChartGraphItem> graphItems = new ArrayList<PageChartGraphItem>();
+
+ public PageChartItem(DAPageChart chart, String text) {
+ // super(chart, SWT.NONE);
+ // TODO Auto-generated constructor stub
+ this.chart = chart;
+ this.text = text;
+ }
+
+ public PageChartItem(DAPageChart chart, String text,
+ PageChartGraphItem praphItem) {
+ this(chart, text);
+
+ // TODO Auto-generated constructor stub
+ graphItems.add(praphItem);
+ }
+
+ public String GetText() {
+ return text;
+ }
+
+ public void SetText(String text) {
+ this.text = text;
+ }
+
+ public DAPageChart GetChart() {
+ return chart;
+ }
+
+ public PageChartItem GetParent() {
+ return parent;
+ }
+
+ public PageChartItem AddChild(PageChartItem child) {
+ children.add(child);
+ child.parent = this;
+ PageChartItem parent = this.parent;
+ while (null != parent) {
+ parent.AddGraphItems(child.GetGraphItem());
+ parent = parent.parent;
+ }
+ // FIXME : redraw
+ // chart.printItems();
+ return this;
+ }
+
+ public List<PageChartItem> GetChildren() {
+ return children;
+ }
+
+ public List<PageChartGraphItem> GetGraphItem() {
+ return graphItems;
+ }
+
+ public void AddGraphItem(PageChartGraphItem item) {
+ int i;
+ for (i = graphItems.size(); i > 0; i--) {
+ if (graphItems.get(i - 1).getTime() <= item.getTime())
+ break;
+ }
+ graphItems.add(i, item);
+
+ PageChartItem parent = this.parent;
+ while (null != parent) {
+ parent.AddGraphItem(item);
+ parent = parent.parent;
+ }
+
+ // FIXME : redraw
+ // chart.printItems();
+ }
+
+ public void AddGraphItems(List<PageChartGraphItem> items) {
+ for (int i = 0; i < items.size(); i++) {
+ AddGraphItem(items.get(i));
+ }
+ // FIXME : redraw
+ // chart.printItems();
+ }
+}
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.jface.viewers.TableViewer;
+import org.tizen.dynamicanalyzer.ColorResources;
import org.tizen.dynamicanalyzer.model.FailedData;
-import org.tizen.dynamicanalyzer.model.FileChartItemData;
import org.tizen.dynamicanalyzer.model.LogPackage;
-import org.tizen.dynamicanalyzer.model.WarningData;
-import org.tizen.dynamicanalyzer.ui.views.filePage.fileChart.FileChartManager;
+import org.tizen.dynamicanalyzer.ui.widgets.DAPageChart.DAPageChart;
public abstract class PageDataManager {
- protected List<PageDataItem> rows = null;
+ protected List<PageDataItem> rows = new ArrayList<PageDataItem>();
protected PageDataColumn column = RegistePageDataColumn();
+
// private List<WarningData> warning = null;
protected List<FailedData> failed = null;
- protected static int PAGE_COLUMN_NUMBER = 0;
- protected static int PAGE_COLUMN_TIME = 1;
- protected static int PAGE_COLUMN_NAME = 2;
- protected static int PAGE_COLUMN_PARAMETER = 3;
- protected static int PAGE_COLUMN_THREADID = 4;
- protected static int PAGE_COLUMN_RETURN = 5;
- protected static int PAGE_COLUMN_ERRNO = 6;
+ protected DAPageChart pageChart = null;
+
+ private boolean useSecondKey = false;
+ private int secondKeyIndex = 0;
+
+ protected static int PAGE_COLUMN_KEY = 0;
+ protected static int PAGE_COLUMN_NUMBER = 1;
+ protected static int PAGE_COLUMN_TIME = 2;
+ protected static int PAGE_COLUMN_NAME = 3;
+ protected static int PAGE_COLUMN_PARAMETER = 4;
+ protected static int PAGE_COLUMN_THREADID = 5;
+ protected static int PAGE_COLUMN_RETURN = 6;
+ protected static int PAGE_COLUMN_ERRNO = 7;
+ public void SetPageChart(DAPageChart pageChart){
+ this.pageChart = pageChart;
+ }
+
+ public void SetPageChart(DAPageChart pageChart, int secondKeyIndex){
+ this.pageChart = pageChart;
+ this.useSecondKey = true;
+ this.secondKeyIndex = secondKeyIndex;
+ }
private void AddErrorData(FailedData data){
if(null == failed)
// warning.add(data);
// }
- protected void AddPageDataItem(PageDataItem data){
- if(null == rows)
- rows = new ArrayList<PageDataItem>();
+ protected int AddPageDataItem(PageDataItem data){
rows.add(data);
+ return rows.size()-1;
}
private int FindInsertIndex(PageDataItem data, int Index){
public void SetPageDataColumn(PageDataColumn column){
this.column = column;
}
+
+ private boolean isItemExist(PageChartItem item, String key){ //FIXME
+ if(null == item)
+ return false;
+ if(item.GetText().compareTo(key) == 0)
+ return true;
+ else
+ return false;
+ }
+ public void AddPageChartItem(PageDataItem dataItem, int itemIndex){
+ List<PageChartItem> items = pageChart.GetItems();
+ int itemSize = items.size();
+ PageChartGraphItem graphItem = new PageChartGraphItem(itemIndex, Long.parseLong(dataItem.GetText(PAGE_COLUMN_TIME)), ColorResources.BLUE);
+ PageChartItem newItem;
+
+ if(null != items && 0 != itemSize){
+ for(int i=0;i<itemSize;i++){
+ PageChartItem item = items.get(i);
+ if(true == isItemExist(item,dataItem.GetText(PAGE_COLUMN_KEY))){
+ if(true == useSecondKey){
+ List<PageChartItem> children = item.GetChildren();
+ int childrenSize = children.size();
+ for(int j=0; j<childrenSize; j++){
+ PageChartItem child = children.get(j);
+ if(true == isItemExist(child,dataItem.GetText(secondKeyIndex))){
+ child.AddGraphItem(graphItem);
+ return;
+ }
+ }
+ newItem = new PageChartItem(pageChart,dataItem.GetText(secondKeyIndex),graphItem);
+ item.AddChild(newItem);
+ return;
+ }
+ else{
+ item.AddGraphItem(graphItem);
+ return;
+ }
+ }
+ }
+ }
+
+ if (true == useSecondKey) {
+ newItem = new PageChartItem(pageChart,
+ dataItem.GetText(PAGE_COLUMN_KEY));
+ newItem.AddChild(new PageChartItem(pageChart, dataItem
+ .GetText(secondKeyIndex), graphItem));
+ } else
+ newItem = new PageChartItem(pageChart,
+ dataItem.GetText(PAGE_COLUMN_KEY), graphItem);
+ pageChart.AddItem(newItem);
+ return;
+
+ }
public void ParsePageData(LogPackage logPack){
List<List<String>> inputs = GetLogsFromLogPackage(logPack);
}
//add page data
- PageDataItem item = MakePageData(input);
- AddPageDataItem(item);
+ PageDataItem item = MakePageData(input);
+ int itemIndex = AddPageDataItem(item);
+ //add page chart data
+ if(null!=pageChart){
+ AddPageChartItem(item, itemIndex);
+ }
+
}
}
}
}
+// public void AddPageChartItem(PageDataItem item, int itemIndex){
+// //find key
+// for(int i=0; i<chartItems.size(); i++){
+// chartItems.get(i).getText()
+// }
+// chartItems
+// }
+
public abstract PageDataColumn RegistePageDataColumn();
public abstract List<List<String>> GetLogsFromLogPackage(LogPackage logPack);
public abstract PageDataItem MakePageData(List<String> input);
package org.tizen.dynamicanalyzer.ui.views.threadPage;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.tizen.dynamicanalyzer.model.LogPackage;
import org.tizen.dynamicanalyzer.nl.ThreadPageLables;
import org.tizen.dynamicanalyzer.ui.widgets.ViewContainer;
+import org.tizen.dynamicanalyzer.ui.widgets.DAPageChart.DAPageChart;
public class ThreadChartView extends DAView {
public static final String ID = ThreadChartView.class.getName();
+ private DAPageChart threadChart;
public ThreadChartView(Composite parent, int style) {
super(parent, style);
Composite contents = viewContainer.getContentArea();
contents.setBackground(ColorResources.WINDOW_BG_COLOR);
contents.setLayout(new FillLayout());
+ threadChart = new DAPageChart(contents, SWT.NONE);
}
@Override
@Override
public void updateLog(LogPackage logPack) {
- System.out.println("updateLog:"+ logPack);
}
@Override
@Override
public Control getControl() {
- return null;
+ return threadChart;
}
}
import org.tizen.dynamicanalyzer.constants.DesignConstants;
import org.tizen.dynamicanalyzer.model.LogPackage;
import org.tizen.dynamicanalyzer.ui.views.base.DAPageComposite;
+import org.tizen.dynamicanalyzer.ui.widgets.DAPageChart.DAPageChart;
public class ThreadPage extends DAPageComposite {
public final static int THREADCHART_INDEX = 0;
public final static int THREAD_API_LIST_INDEX = 1;
public final static int INFO_VIEW_INDEX = 2;
public final static int THREAD_DETAIL = 3;
+ private ThreadChartView threadChartView;
// 10 : offset
private final double DEFAULT_WIDTH = DesignConstants.SNAPSHOT_VIEW_WIDTH + 10;
SashForm baseForm;
SashForm leftForm;
SashForm rightForm;
-
+
ThreadPageDataManager tManager = ThreadPageDataManager.getInstance();
public ThreadPage(Composite parent, int style) {
super(parent, style);
-
+
this.setLayout(new FillLayout());
baseForm = new SashForm(this, SWT.HORIZONTAL);
baseForm.setLayout(new FillLayout());
leftForm = new SashForm(baseForm, SWT.VERTICAL);
// FILECHART_INDEX = 0;
- ThreadChartView threadChartView = new ThreadChartView(leftForm, SWT.NONE);
+ threadChartView = new ThreadChartView(leftForm, SWT.NONE);
addView(threadChartView);
- /*
-
- // FILE_API_LIST_INDEX = 1;
- FileApiListView fileApiListView = new FileApiListView(leftForm,
- SWT.NONE);
- addView(fileApiListView);
-
- leftForm.setWeights(new int[] { 60, 40 });
-
- rightForm = new SashForm(baseForm, SWT.VERTICAL);
- // INFO_VIEW_INDEX = 2;
- DATabComposite tabView = new DATabComposite(rightForm, SWT.NONE);
- addView(tabView);
- {
- CallstackView callstack = new CallstackView(
- tabView.getContentComposite(), SWT.NONE);
- tabView.addView(callstack,
- InformationViewLables.CALLSTACK_VIEW_TITLE);
- }
-
- // FILE_DETAIL = 3;
- FileDetailInfoView detailInfo = new FileDetailInfoView(rightForm,
- SWT.NONE);
- addView(detailInfo);
-
- rightForm.setWeights(new int[] { 50, 50 });
-
- baseForm.setWeights(new int[] { 75, 25 });
-
- this.addControlListener(new ControlListener() {
-
- @Override
- public void controlResized(ControlEvent e) {
- Composite composite = (Composite) e.widget;
- Rectangle rect = composite.getBounds();
- int pageWidth = rect.width;
- int pageHeight = rect.height;
-
- int wRate = (int) (DEFAULT_WIDTH * 100 / pageWidth);
- int hRate = (int) (DEFAULT_HEIGHT * 100 / pageHeight);
- wRate = (wRate >= 100) ? 100 : wRate;
- hRate = (hRate >= 100) ? 100 : hRate;
-
- baseForm.setWeights(new int[] { 100 - wRate, wRate });
- rightForm.setWeights(new int[] { hRate, 100 - hRate });
- }
-
- @Override
- public void controlMoved(ControlEvent e) {
- }
- });
- */
+ tManager.SetPageChart((DAPageChart) threadChartView.getControl());
}
+
public void updateLog(LogPackage logPack) {
tManager.ParsePageData(logPack);
}
public class ThreadPageDataManager extends PageDataManager {
private static ThreadPageDataManager instance = null;
- private static int THREAD_PAGE_COLUMN_COUNT = 7;
-
- private static String[] columnNames = { CommonPageLables.COMMON_DATA_COLUMN_NUMBER,
+ private static int THREAD_PAGE_COLUMN_COUNT = 8;
+
+ private static String[] columnNames = {
+ CommonPageLables.COMMON_DATA_COLUMN_KEY,
+ CommonPageLables.COMMON_DATA_COLUMN_NUMBER,
CommonPageLables.COMMON_DATA_COLUMN_TIME,
CommonPageLables.COMMON_DATA_COLUMN_NAME,
CommonPageLables.COMMON_DATA_COLUMN_PARAMETER,
CommonPageLables.COMMON_DATA_COLUMN_THREADID,
CommonPageLables.COMMON_DATA_COLUMN_RETURN,
CommonPageLables.COMMON_DATA_COLUMN_ERRNO };
- private static Integer[] columnAttribute = { PageDataColumn.COLUMN_ATTRIBUTE_LONG,
+ private static Integer[] columnAttribute = {
+ PageDataColumn.COLUMN_ATTRIBUTE_STRING,
+ PageDataColumn.COLUMN_ATTRIBUTE_LONG,
PageDataColumn.COLUMN_ATTRIBUTE_TIME,
PageDataColumn.COLUMN_ATTRIBUTE_STRING,
PageDataColumn.COLUMN_ATTRIBUTE_STRING,
return instance;
}
- private ThreadPageDataManager(){
+ private ThreadPageDataManager() {
}
@Override
public PageDataColumn RegistePageDataColumn() {
// TODO Auto-generated method stub
- PageDataColumn pageColumn = new PageDataColumn(THREAD_PAGE_COLUMN_COUNT, columnNames, columnAttribute);
+ PageDataColumn pageColumn = new PageDataColumn(
+ THREAD_PAGE_COLUMN_COUNT, columnNames, columnAttribute);
return pageColumn;
}
public PageDataItem MakePageData(List<String> input) {
// TODO Auto-generated method stub
PageDataItem data = new PageDataItem(column);
- //number
- data.SetText(PAGE_COLUMN_NUMBER, input.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX));
- //time
+ // key(object address)
+ data.SetText(PAGE_COLUMN_KEY,
+ input.get(LogCenterConstants.RESOURCE_FDVALUE_INDEX));
+ // number
+ data.SetText(PAGE_COLUMN_NUMBER,
+ input.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX));
+ // time
data.SetText(PAGE_COLUMN_TIME, input.get(LogCenterConstants.TIME_INDEX));
- //name
- data.SetText(PAGE_COLUMN_NAME, input.get(LogCenterConstants.APINAME_INDEX));
- //parameter
- data.SetText(PAGE_COLUMN_PARAMETER, input.get(LogCenterConstants.INPUTPARM_INDEX));
- //thread id
- data.SetText(PAGE_COLUMN_THREADID, input.get(LogCenterConstants.THREAD_ID_INDEX));
- //return
- data.SetText(PAGE_COLUMN_RETURN, input.get(LogCenterConstants.RETURN_INDEX));
- //errno
- data.SetText(PAGE_COLUMN_ERRNO, input.get(LogCenterConstants.ERROR_INDEX));
+ // name
+ data.SetText(PAGE_COLUMN_NAME,
+ input.get(LogCenterConstants.APINAME_INDEX));
+ // parameter
+ data.SetText(PAGE_COLUMN_PARAMETER,
+ input.get(LogCenterConstants.INPUTPARM_INDEX));
+ // thread id
+ data.SetText(PAGE_COLUMN_THREADID,
+ input.get(LogCenterConstants.THREAD_ID_INDEX));
+ // return
+ data.SetText(PAGE_COLUMN_RETURN,
+ input.get(LogCenterConstants.RETURN_INDEX));
+ // errno
+ data.SetText(PAGE_COLUMN_ERRNO,
+ input.get(LogCenterConstants.ERROR_INDEX));
return data;
}
-// @Override
-// public abstract PageChartDataItem MakePageChartData(PageDataItem){ //FIXME
-//}
+
+ // @Override
+ // public abstract PageChartDataItem MakePageChartData(PageDataItem){
+ // //FIXME
+ // }
@Override
public boolean ErrorCheck(List<String> input) {
// TODO Auto-generated method stub
return false;
}
-
- public void clear(){
+
+ public void clear() {
super.clear();
instance = null;
}
--- /dev/null
+package org.tizen.dynamicanalyzer.ui.widgets.DAPageChart;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.widgets.Composite;
+import org.tizen.dynamicanalyzer.ui.views.pageInfo.PageChartGraphItem;
+import org.tizen.dynamicanalyzer.ui.views.pageInfo.PageChartItem;
+
+public class DAPageChart extends Composite {
+
+ private List<PageChartItem> items = new ArrayList<PageChartItem>();
+
+ public DAPageChart(Composite parent, int style) {
+ super(parent, style);
+ // TODO Auto-generated constructor stub
+ }
+
+ public void AddItem(PageChartItem item) {
+ items.add(item);
+ // printItem(items,0);
+ // FIXME : redraw
+ }
+
+ public List<PageChartItem> GetItems() {
+ return items;
+ }
+
+ public void printItem(List<PageChartItem> items, int depth) {
+ PageChartItem item;
+ PageChartGraphItem graphItem;
+ List<PageChartGraphItem> graphItems;
+ if (items != null && items.size() != 0) {
+ for (int i = 0; i < items.size(); i++) {
+ for (int j = 0; j < depth; j++) {
+ System.out.print(" -");
+ }
+ item = items.get(i);
+ System.out.print(item.GetText() + " : <");
+ graphItems = item.GetGraphItem();
+ if (graphItems != null && graphItems.size() != 0) {
+ for (int k = 0; k < graphItems.size(); k++) {
+ graphItem = graphItems.get(k);
+ System.out.print(graphItem.getPageDataItemIndex()
+ + ", ");
+ }
+ }
+ System.out.println(">");
+ if (item.GetChildren() != null
+ && item.GetChildren().size() != 0)
+ printItem(item.GetChildren(), depth + 1);
+ }
+ } else {
+ if (depth == 0)
+ System.out.println("no item!!!");
+ }
+ System.out.println("\n");
+ }
+
+ public void printItems() {
+ printItem(items, 0);
+ }
+}