USERINTERFACE_CONTROL_LIST_VIEW_NAME = Controls
-USERINTERFACE_CONTROL_LIST_VIEW_COLUMN_0 = Class Name
-USERINTERFACE_CONTROL_LIST_VIEW_COLUMN_1 = Initializing Time
-USERINTERFACE_CONTROL_LIST_VIEW_COLUMN_2 = Terminating Time
+USERINTERFACE_CONTROL_LIST_VIEW_COLUMN_0 = Class name
+USERINTERFACE_CONTROL_LIST_VIEW_COLUMN_1 = Initializing time
+USERINTERFACE_CONTROL_LIST_VIEW_COLUMN_2 = Terminating time
USERINTERFACE_CONTROL_LIST_VIEW_COLUMN_3 = Control type
USERINTERFACE_SCENETRANSFORM_LIST_VIEW_NAME = Scene Transforms
USERINTERFACE_SCENETRANSFORM_LIST_VIEW_COLUMN_0 = Time
-USERINTERFACE_SCENETRANSFORM_LIST_VIEW_COLUMN_1 = Scene Name
-USERINTERFACE_SCENETRANSFORM_LIST_VIEW_COLUMN_2 = Form Name
-USERINTERFACE_SCENETRANSFORM_LIST_VIEW_COLUMN_3 = Panel Name
-USERINTERFACE_SCENETRANSFORM_LIST_VIEW_COLUMN_4 = Transform Time
+USERINTERFACE_SCENETRANSFORM_LIST_VIEW_COLUMN_1 = Scene name
+USERINTERFACE_SCENETRANSFORM_LIST_VIEW_COLUMN_2 = Form name
+USERINTERFACE_SCENETRANSFORM_LIST_VIEW_COLUMN_3 = Panel name
+USERINTERFACE_SCENETRANSFORM_LIST_VIEW_COLUMN_4 = Transform time
USERINTERFACE_SNAPSHOT_VIEW_NAME = Snapshot
USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_NAME = UI Function Profiling
-USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_0 = Library or Function Name
-USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_1 = Excl. CPU Time
-USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_2 = Incl. CPU Time
-USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_3 = Incl. Esapsed Time
-USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_4 = Excl. Elapsed Time
-USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_5 = Excl. CPU Avg. Time
-USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_6 = Incl. CPU Avg. Time
-USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_7 = Incl. Esapsed Avg. Time
-USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_8 = Excl. Elapsed Avg. Time
-
-USERINTERFACE_FORMBASED_LEAK_LIST_VIEW_NAME = Form Based Leak
-USERINTERFACE_FORMBASED_LEAK_LIST_VIEW_COLUMN_0 = API
-USERINTERFACE_FORMBASED_LEAK_LIST_VIEW_COLUMN_1 = Leak Type
-USERINTERFACE_FORMBASED_LEAK_LIST_VIEW_COLUMN_2 = Time
-USERINTERFACE_FORMBASED_LEAK_LIST_VIEW_COLUMN_3 = Parameter
-USERINTERFACE_FORMBASED_LEAK_LIST_VIEW_COLUMN_4 = Return Value
\ No newline at end of file
+USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_0 = Library or function name
+USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_1 = CPU time
+USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_2 = CPU avg. time
+USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_3 = Elapsed time
+USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_4 = Elapsed avg. time
+USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_5 = CPU time
+USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_6 = CPU avg. time
+USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_7 = Elapsed time
+USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_8 = Elapsed avg. time
+
+
+
+
public void parsePageData(LogPackage logPack) {
setSceneTransformDataTFromLogPackage(logPack);
+
+
setControlDataTFromLogPackage(logPack);
}
return;
}
List<List<String>> inputs = logs.getLogs();
- getControlLogListQueue().putLog(inputs);
+// getControlLogListQueue().putLog(inputs);
+ for (int i = 0; i < inputs.size(); i++) {
+ getControlDataChecker().parserLog(inputs.get(i));
+ }
+
}
public void setSceneTransformDataTFromLogPackage(LogPackage logPack) {
return;
}
List<List<String>> inputs = logs.getLogs();
- getSceneTransformLogListQueue().putLog(inputs);
+ //getSceneTransformLogListQueue().putLog(inputs);
+ for (int i = 0; i < inputs.size(); i++) {
+ getSceneTransformDataChecker().parserLog(inputs.get(i));
+ }
}
public void clear() {
import java.util.ArrayList;
import java.util.List;
+
+import org.tizen.dynamicanalyzer.common.SymbolManager;
import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
import org.tizen.dynamicanalyzer.ui.userinterface.UIDataManager;
import org.tizen.dynamicanalyzer.ui.userinterface.profiling.UIFunctionProfilingData;
controlData
.setChildName(input
.get(LogCenterConstants.USER_INTERFACE_CONTROL_LIST_CHILD_NAME_INDEX));
+
+ String childClassName = SymbolManager.demanglingFunctionName(input
+ .get(LogCenterConstants.USER_INTERFACE_CONTROL_LIST_CHILD_CLASS_NAME_INDEX));
+
controlData
- .setChildClassName(input
- .get(LogCenterConstants.USER_INTERFACE_CONTROL_LIST_CHILD_CLASS_NAME_INDEX));
+ .setChildClassName(childClassName);
controlData
.setChildPointer(input
.get(LogCenterConstants.USER_INTERFACE_CONTROL_LIST_CHILD_POINTER_INDEX));
import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.common.DASelectionData;
+import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
import org.tizen.dynamicanalyzer.model.TreeInput;
import org.tizen.dynamicanalyzer.ui.summary.profiling.ProfilingData;
import org.tizen.dynamicanalyzer.ui.userinterface.UIDataManager;
@Override
public void widgetSelected(SelectionEvent e) {
+
GridItem[] items = tree.getSelection();
+ DATableDataFormat dataFormat = (DATableDataFormat) items[0].getData();
+ String time = dataFormat.getData().get(LogCenterConstants.TIME_INDEX);
+
DASelectionData selData = new DASelectionData(
- UIControlListView.ID, 0, 0, items, tree);
+ UIControlListView.ID, Long.parseLong(time), 0, items, tree);
AnalyzerManager.getCurrentPage().updatePage(selData);
AnalyzerManager.getCurrentPage().controlSelection(
UIControlListView.ID);
--- /dev/null
+package org.tizen.dynamicanalyzer.ui.userinterface.profiling;
+
+import org.eclipse.nebula.widgets.grid.GridColumnGroup;
+import org.eclipse.nebula.widgets.grid.internal.DefaultColumnGroupHeaderRenderer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.tizen.dynamicanalyzer.resources.ColorResources;
+import org.tizen.dynamicanalyzer.resources.FontResources;
+
+public class UIFunctionProfilingColumnGroupRenderer extends DefaultColumnGroupHeaderRenderer {
+
+ int leftMargin = 6;
+
+ int rightMargin = 6;
+
+ int topMargin = 3;
+
+ int bottomMargin = 4;
+
+ int arrowMargin = 6;
+
+ int imageSpacing = 3;
+
+ @Override
+ public boolean notify(int arg0, Point arg1, Object arg2) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void paint(GC gc, Object arg1) {
+ GridColumnGroup column = (GridColumnGroup) arg1;
+ gc.setBackground(ColorResources.TABLE_HEADER_BG);
+ Rectangle rect = getBounds();
+ gc.fillRectangle(rect.x, rect.y, rect.width, rect.height);
+ gc.setForeground(ColorResources.TABLE_LINE);
+ gc.drawLine(rect.x - 1, rect.y, rect.x - 1, rect.y + rect.height);
+ gc.drawLine(rect.x - 1, rect.y - 1 + rect.height, rect.x + rect.width,
+ rect.y - 1 + rect.height);
+
+ gc.setForeground(ColorResources.TABLE_HEADER_FONT_COLOR);
+ gc.setFont(FontResources.TABLE_HEADER);
+ String inputText = column.getText();
+ Point textSize = gc.textExtent(inputText, SWT.DRAW_MNEMONIC);
+ int textWidth = textSize.x;
+
+ int y = getBounds().y + getBounds().height - bottomMargin
+ - gc.getFontMetrics().getHeight();
+
+ int x = rect.x + (rect.width - textWidth) / 2;
+ gc.drawString(inputText, x, y, true);
+ }
+
+}
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.nebula.widgets.grid.Grid;
import org.eclipse.nebula.widgets.grid.GridColumn;
+import org.eclipse.nebula.widgets.grid.GridColumnGroup;
import org.eclipse.nebula.widgets.grid.GridItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.common.DASelectionData;
+import org.tizen.dynamicanalyzer.model.ColumnData;
import org.tizen.dynamicanalyzer.model.TreeInput;
+import org.tizen.dynamicanalyzer.ui.summary.profiling.FunctionUsageProfilingTableCellRenderer;
import org.tizen.dynamicanalyzer.ui.summary.profiling.ProfilingData;
import org.tizen.dynamicanalyzer.ui.userinterface.UIDataManager;
import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
});
}
- @Override
- public void setColumns(String[] columnNames) {
- int size = columnNames.length;
+ public void setColumns(List<ColumnData> columnData) {
+ int size = columnData.size();
+ int index = 0;
for (int i = 0; i < size; i++) {
- GridColumn column = new GridColumn(tree, SWT.NONE);
- column.setText(columnNames[i]);
- if (treeTable && i == 0) {
- column.setTree(true);
+ if (columnData.get(i).isParent()) {
+ GridColumnGroup columnGroup = new GridColumnGroup(tree,
+ SWT.NONE);
+ columnGroup.setHeaderRenderer(new UIFunctionProfilingColumnGroupRenderer());
+ columnGroup.setText(columnData.get(i).getText());
+ List<ColumnData> children = columnData.get(i).getChildren();
+ int childSize = children.size();
+ for (int ii = 0; ii < childSize; ii++) {
+ createColumn(columnGroup, children.get(ii), index++);
+ }
+ } else {
+ createColumn(tree, columnData.get(i), index++);
}
- column.setCellRenderer(new UIFunctionProfilingTableCellRenderer());
- column.setHeaderRenderer(new DATableHeaderRenderer());
+ }
+ }
+
+ private void createColumn(Object parent, ColumnData data, int index) {
+ GridColumn column = null;
+ if (parent instanceof GridColumnGroup) {
+ GridColumnGroup group = (GridColumnGroup) parent;
+ column = new GridColumn(group, SWT.NONE);
+ } else {
+ Grid table = (Grid) parent;
+ column = new GridColumn(table, SWT.NONE);
+ }
+
+ column.setCellRenderer(new FunctionUsageProfilingTableCellRenderer());
+ column.setHeaderRenderer(new DATableHeaderRenderer());
+ column.setText(data.getText());
+ if (data.getWidth() == 0) {
column.pack();
+ } else {
+ column.setWidth(data.getWidth());
+ }
+ if (treeTable && index == 0) {
+ column.setTree(true);
+ }
- if (null != comparator && null != sourceColumns
- && null != sortTypes) {
- final int type = sortTypes[i];
- final int sourceColumn = sourceColumns[i];
- final int columnIndex = i;
- column.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- comparator.setType(type);
- comparator.setColumn(columnIndex);
- comparator.setSourceColumn(sourceColumn);
- comparator.reverseDirection();
- updateTree();
- }
- });
- }
+ if (null != comparator && null != sourceColumns && null != sortTypes) {
+ final int type = sortTypes[index];
+ final int sourceColumn = sourceColumns[index];
+ final int columnIndex = index;
+ column.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent event) {
+ comparator.setType(type);
+ comparator.setColumn(columnIndex);
+ comparator.setSourceColumn(sourceColumn);
+ comparator.reverseDirection();
+ updateTree();
+ }
+ });
}
}
inputData.add(input.getSequence());
inputData.add(input.getAPIName());
inputData.add(input.getExclCPUTime());
- inputData.add(input.getInclCPUTime());
- inputData.add(input.getInclEsapsedTime());
- inputData.add(input.getExclEsapsedTime());
-
inputData.add(input.getExclCPUAvgTime());
+ inputData.add(input.getExclEsapsedTime());
+ inputData.add(input.getExclEsapsedAvgTime());
+ inputData.add(input.getInclCPUTime());
inputData.add(input.getInclCPUAvgTime());
+ inputData.add(input.getInclEsapsedTime());
inputData.add(input.getInclEsapsedAvgTime());
- inputData.add(input.getExclEsapsedAvgTime());
+
tableData.getData().addAll(inputData);
List<String> text = new ArrayList<String>();
text.add(input.getAPIName());
-
text.add(input.getExclCPUTime());
- text.add(input.getInclCPUTime());
- text.add(input.getInclEsapsedTime());
- text.add(input.getExclEsapsedTime());
-
text.add(input.getExclCPUAvgTime());
+ text.add(input.getExclEsapsedTime());
+ text.add(input.getExclEsapsedAvgTime());
+ text.add(input.getInclCPUTime());
text.add(input.getInclCPUAvgTime());
+ text.add(input.getInclEsapsedTime());
text.add(input.getInclEsapsedAvgTime());
- text.add(input.getExclEsapsedAvgTime());
+
TreeInput output = new TreeInput();
output.setText(text);
package org.tizen.dynamicanalyzer.ui.userinterface.profiling;
+import java.util.ArrayList;
+import java.util.List;
+
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.common.AnalyzerConstants;
+import org.tizen.dynamicanalyzer.model.ColumnData;
import org.tizen.dynamicanalyzer.model.DAView;
import org.tizen.dynamicanalyzer.nl.UserInterfacePageLabels;
import org.tizen.dynamicanalyzer.resources.ColorResources;
int[] innerMaxWeight = { 100 };
int[] outerMaxWeight = { 0, 100 };
+ List<ColumnData> columnData = null;
private String[] columnNames = {
UserInterfacePageLabels.USERINTERFACE_UIFUNCTIONPROFILING_LIST_VIEW_COLUMN_0,
int[] sourceColumns = {
UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_API_NAME,
UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_EXCL_CPU_TIME,
- UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_INCL_CPU_TIME,
- UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_INCL_ESAPSED_TIME,
- UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_EXCL_ESAPSED_TIME,
UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_EXCL_CPU_AVG_TIME,
+ UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_EXCL_ESAPSED_TIME,
+ UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_EXCL_ESAPSED_AVG_TIME,
+ UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_INCL_CPU_TIME,
UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_INCL_CPU_AVG_TIME,
- UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_INCL_ESAPSED_AVG_TIME,
- UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_EXCL_ESAPSED_AVG_TIME };
+ UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_INCL_ESAPSED_TIME,
+ UIFunctionProfilingData.USER_INTERFACE_PROFILING_LIST_INCL_ESAPSED_AVG_TIME };
public UIFunctionProfilingView(Composite parent, int style) {
super(parent, style);
treeComp.setTree(true);
treeComp.setSortTypes(sortTypes);
treeComp.setSourceColumns(sourceColumns);
- treeComp.setColumns(columnNames);
+ createColumnData();
+ treeComp.setColumns(columnData);
treeComp.setColumnSize(columnSizes);
treeComp.setColumnVisibility(columnVisibility);
treeComp.setTableToolTipListener(null);
}
+
+ private void createColumnData() {
+ int columnIndex = 0;
+ columnData = new ArrayList<ColumnData>();
+ ColumnData data0 = new ColumnData(columnNames[columnIndex++]);
+ columnData.add(data0);
+
+ ColumnData data1 = new ColumnData("Exclusive");
+ ColumnData data1Child1 = new ColumnData(columnNames[columnIndex++]);
+ ColumnData data1Child2 = new ColumnData(columnNames[columnIndex++]);
+ ColumnData data1Child3 = new ColumnData(columnNames[columnIndex++]);
+ ColumnData data1Child4 = new ColumnData(columnNames[columnIndex++]);
+ data1.getChildren().add(data1Child1);
+ data1.getChildren().add(data1Child2);
+ data1.getChildren().add(data1Child3);
+ data1.getChildren().add(data1Child4);
+ columnData.add(data1);
+
+ ColumnData data2 = new ColumnData("Inclusive");
+ ColumnData data2Child1 = new ColumnData(columnNames[columnIndex++]);
+ ColumnData data2Child2 = new ColumnData(columnNames[columnIndex++]);
+ ColumnData data2Child3 = new ColumnData(columnNames[columnIndex++]);
+ ColumnData data2Child4 = new ColumnData(columnNames[columnIndex++]);
+ data2.getChildren().add(data2Child1);
+ data2.getChildren().add(data2Child2);
+ data2.getChildren().add(data2Child3);
+ data2.getChildren().add(data2Child4);
+ columnData.add(data2);
+
+ }
@Override
public void updateView() {
import org.eclipse.swt.widgets.Composite;
import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.common.DASelectionData;
+import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
import org.tizen.dynamicanalyzer.model.TableInput;
import org.tizen.dynamicanalyzer.ui.userinterface.UIDataManager;
import org.tizen.dynamicanalyzer.ui.widgets.table.DATableComposite;
@Override
public void widgetSelected(SelectionEvent e) {
+
+
GridItem[] items = table.getSelection();
+ DATableDataFormat dataFormat = (DATableDataFormat) items[0].getData();
+ String time = dataFormat.getData().get(LogCenterConstants.TIME_INDEX);
+
DASelectionData selData = new DASelectionData(
- UITransformListView.ID, 0, 0, items, table);
+ UITransformListView.ID, Long.parseLong(time), 0, items, table);
AnalyzerManager.getCurrentPage().updatePage(selData);
AnalyzerManager.getCurrentPage().controlSelection(
UITransformListView.ID);
-
-// String test = items[0]
-// .getText(UISceneTransformData.USER_INTERFACE_SCENE_TRANSFORMS_LIST_TIME);
- // System.out.println(" test : " + test);
}
@Override