*/
package org.tizen.dynamicanalyzer.ui.thread;
-import org.eclipse.nebula.widgets.grid.GridItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.tizen.dynamicanalyzer.common.DASelectionData;
import org.tizen.dynamicanalyzer.model.DAView;
import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
-import org.tizen.dynamicanalyzer.nl.FilePageLabels;
import org.tizen.dynamicanalyzer.nl.ThreadPageLabels;
import org.tizen.dynamicanalyzer.resources.ColorResources;
import org.tizen.dynamicanalyzer.resources.FontResources;
-import org.tizen.dynamicanalyzer.ui.file.FileChartItemData;
-import org.tizen.dynamicanalyzer.ui.file.chart.FileChartManager;
import org.tizen.dynamicanalyzer.ui.widgets.ViewContainer;
-import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
-import org.tizen.dynamicanalyzer.utils.Formatter;
public class ThreadDetailInfoView extends DAView {
public static final String ID = ThreadDetailInfoView.class.getName();
+ public static final int LEFT_MARGIN = 10;
+ public static final int HEIGHT_MARGIN = 20;
private Canvas canvas = null;
- private String fileName = AnalyzerLabels.EMPTY_STRING;
- private String filePath = AnalyzerLabels.EMPTY_STRING;
- // private String fileMode = "";
- private int totalSize = 0;
- private int readSize = 0;
- private int writeSize = 0;
- private long totalUseTime = 0;
- private int apiCount = 0;
- private int failedApiCount = 0;
+ private int tid = 0;
+ private String type = AnalyzerLabels.EMPTY_STRING;
+ private boolean select = false;
int[] innerMaxWeight = { 0, 100 };
int[] outerMaxWeight = { 0, 100 };
private void init() {
- fileName = AnalyzerLabels.EMPTY_STRING;
- filePath = AnalyzerLabels.EMPTY_STRING;
- // fileMode = "";
- totalSize = 0;
- readSize = 0;
- writeSize = 0;
- totalUseTime = 0;
- apiCount = 0;
- failedApiCount = 0;
+ tid = 0;
+ type = AnalyzerLabels.EMPTY_STRING;
+ select = false;
}
public ThreadDetailInfoView(Composite parent, int style) {
@Override
public void paintControl(PaintEvent e) {
- int x = 0;
- int y = 0;
Rectangle rect = canvas.getBounds();
e.gc.setBackground(ColorResources.VIEW_BG_COLOR);
e.gc.fillRectangle(rect.x, rect.y, rect.width, rect.height);
e.gc.setForeground(ColorResources.TABLE_CONTENTS_FONT_COLOR);
e.gc.setFont(FontResources.DETAIL_INFO_FONT);
- String fName = FilePageLabels.FILE_DETAILS_FILE_NAME + fileName;
- Point textSize = e.gc.textExtent(fName, SWT.DRAW_MNEMONIC);
- if (textSize.x > rect.width) {
- fName = FilePageLabels.FILE_DETAILS_FILE_NAME_NEWLINE
- + fileName;
- }
- int fontHeight = textSize.y + 5;
- // e.gc.drawString(fName, x += 10, y += fontHeight);
-
- // file path bolck
- {
- String pathLabel = FilePageLabels.FILE_DETAILS_FILE_PATH;
- // e.gc.drawString(pathLabel, x, y + fontHeight);
- Point pathSize = e.gc.textExtent(pathLabel,
- SWT.DRAW_MNEMONIC);
- int xPos = x + pathSize.x;
- int width = rect.width - xPos;
- String text = filePath;
- if (text.length() > 0) {
- while (text.length() > 0) {
- Point tSize = e.gc.textExtent(text,
- SWT.DRAW_MNEMONIC);
- String inputText = AnalyzerLabels.EMPTY_STRING;
- if (tSize.x > width) {
- int strLen = (width * text.length()) / tSize.x;
- inputText += text.substring(0, strLen - 1);
- text = text.substring(strLen - 1, text.length());
- } else {
- inputText += text;
- text = AnalyzerLabels.EMPTY_STRING;
- }
- // e.gc.drawString(inputText, xPos, y +=
- // fontHeight);
- }
- } else {
- y += fontHeight;
- }
+ String threadID;
+ String threhadType;
+
+ if (true == select) {
+ threadID = ThreadPageLabels.THREAD_DETAILS_TID
+ + String.valueOf(tid);
+ threhadType = ThreadPageLabels.THREAD_DETAILS_TTYPE + type;
+ } else {
+ threadID = ThreadPageLabels.THREAD_DETAILS_TID;
+ threhadType = ThreadPageLabels.THREAD_DETAILS_TTYPE;
}
- // e.gc.drawString(FilePageLabels.FILE_DETAILS_TOTAL_SIZE
- // + Integer.toString(totalSize), x, y += fontHeight);
- // e.gc.drawString(
- // FilePageLabels.FILE_DETAILS_READ_SIZE
- // + Integer.toString(readSize), x,
- // y += fontHeight);
- // e.gc.drawString(FilePageLabels.FILE_DETAILS_WRITE_SIZE
- // + Integer.toString(writeSize), x, y += fontHeight);
- // e.gc.drawString(FilePageLabels.FILE_DETAILS_TOTAL_USE_TIME
- // + Formatter.toTimeFormat(Long.toString(totalUseTime)),
- // x, y += fontHeight);
- // e.gc.drawString(
- // FilePageLabels.FILE_DETAILS_API_COUNT
- // + Integer.toString(apiCount), x,
- // y += fontHeight);
- // e.gc.drawString(FilePageLabels.FILE_DETAILS_FAILED_API_COUNT
- // + Integer.toString(failedApiCount), x, y += fontHeight);
+ int y = HEIGHT_MARGIN;
+ e.gc.drawText(threadID, LEFT_MARGIN, y);
+ Point p = e.gc.textExtent(threadID, SWT.DRAW_DELIMITER);
+ y = y + p.y + HEIGHT_MARGIN;
+ e.gc.drawText(threhadType, LEFT_MARGIN, y);
}
});
}
@Override
public void updateView(DASelectionData data) {
- Object obj = data.getData();
- if (!(obj instanceof GridItem)) {
+ ThreadPageThreadData item = (ThreadPageThreadData) data.getData();
+ if (!(item instanceof ThreadPageThreadData)) {
return;
}
- GridItem ti = (GridItem) obj;
- DATableDataFormat tableData = (DATableDataFormat) ti.getData();
- FileChartItemData item = (FileChartItemData) tableData.getObject();
- // FileChartItemData item = (FileChartItemData) ti.getData();
- // fileMode = "";
- totalSize = 0;
- readSize = 0;
- writeSize = 0;
- apiCount = 0;
- failedApiCount = 0;
- if (!item.isParent()) {
- item = FileChartManager.getInstance().getFileRegister()
- .get(item.getParentKey());
- }
- fileName = item.getFileName();
- filePath = item.getPath();
- int readSize = 0;
- int writeSize = 0;
- int totalSize = 0;
- int size = item.getChildern().size();
- for (int i = 0; i < size; i++) {
- FileChartItemData child = item.getChildern().get(i);
- readSize += child.getReadSize();
- writeSize += child.getWriteSize();
- totalSize += child.getTotalSize();
-
- for (int ii = 0; ii < child.getData().size(); ii++) {
- apiCount += child.getData().get(ii).getRelations().size();
- }
- }
- failedApiCount = item.getFailedData().size();
- apiCount += failedApiCount;
- this.readSize = readSize;
- this.writeSize = writeSize;
- this.totalSize = totalSize;
-
- totalUseTime = item.getTotalFileUseTime();
+ select = true;
+ tid = item.getTid();
+ type = item.getType();
canvas.redraw();
}
chart.getData(), chart));
}
+ // FIXME : chart range selection
private Listener chartMouseListener = new Listener() {
@Override
long startTime = 0;
ThreadPageThreadData mainData = new ThreadPageThreadData(this,
- String.valueOf(tid) + ThreadPageLabels.THREAD_ITEM_TYPE_MAIN,
+ ThreadPageLabels.THREAD_ITEM_TYPE_MAIN,
tid, null);
pushRow(mainData);
- ThreadPageThreadDataEvent mainEvent = new ThreadPageThreadDataEvent(
- this, ThreadPageThreadDataEvent.TYPE_EVENT,
- LogCenterConstants.THREAD_TYPE_MAIN,
- LogCenterConstants.THREAD_API_TYPE_START, startTime, tid, null);
- pushEvent(mainEvent);
+// ThreadPageThreadDataEvent mainEvent = new ThreadPageThreadDataEvent(
+// this, ThreadPageThreadDataEvent.TYPE_EVENT,
+// LogCenterConstants.THREAD_TYPE_MAIN,
+// LogCenterConstants.THREAD_API_TYPE_START, startTime, tid, null);
+// pushEvent(mainEvent);
}
public List<List<String>> getLogsFromLogPackage(LogPackage logPack,
String address = input
.get(LogCenterConstants.THREAD_PTHREAD_ID_INDEX);
ThreadPageThreadData data = new ThreadPageThreadData(this,
- String.valueOf(tid)
- + ThreadPageLabels.THREAD_ITEM_TYPE_PTHREAD, tid,
+ ThreadPageLabels.THREAD_ITEM_TYPE_PTHREAD, tid,
address);
pushRow(data);
event = new ThreadPageThreadDataEvent(this,
.get(LogCenterConstants.THREAD_PTHREAD_ID_INDEX);
ThreadPageThreadData data = new ThreadPageThreadData(
this,
- String.valueOf(tid) + ThreadPageLabels.THREAD_ITEM_TYPE_OSP,
+ ThreadPageLabels.THREAD_ITEM_TYPE_OSP,
tid, address);
pushRow(data);
event = new ThreadPageThreadDataEvent(this,