import org.tizen.dynamicanalyzer.widgets.timeline.DATimelineFrameRenderer;
import org.tizen.dynamicanalyzer.widgets.timeline.DATimelineMarker;
import org.tizen.dynamicanalyzer.widgets.timeline.DATimelineTimeRenderer;
+import org.tizen.dynamicanalyzer.widgets.timeline.DATimelineTinyTimeRenderer;
public class DAChartBoard extends Composite {
public final static int BOARD_STYLE_TIME = 0;
public final static int BOARD_STYLE_FRAME = 1;
+ public final static int BOARD_STYLE_KERNEL = 2;
public DAChartBoard(Composite parent, String title) {
this(parent, title, BOARD_STYLE_TIME);
}
public DAChartBoard(Composite parent, String title, int[] scaleValues) {
- this(parent, title, BOARD_STYLE_TIME);
+ this(parent, title, BOARD_STYLE_KERNEL);
scale.setMaximum(scaleValues.length - 1);
boardManager.setScaleValues(scaleValues);
}
}
});
- if (BOARD_STYLE_TIME == boardStyle) {
+ if (boardStyle == BOARD_STYLE_TIME) {
interval = DATimelineTimeRenderer.DEFAULT_INTERVAL;
timeline = new DATimeline(this, true);
timelineTooltip = new DefaultToolTip(timeline);
lifecycleBarTooltip = new DefaultToolTip(lifecycleBar);
lifecycleBarTooltip.deactivate();
lifecycleBar.addMouseTrackListener(timelineMouseTrackAdapter);
- } else { // BOARD_STYLE_FRAME == boardStyle
+ } else if(boardStyle == BOARD_STYLE_FRAME) {
+ interval = DATimelineFrameRenderer.DEFAULT_INTERVAL;
+ timeline = new DATimeline(this, false);
+ timeline.setRenderer(new DATimelineFrameRenderer());
+ } else {
+ lifecycleBar = new LifecycleBar(this);
+
interval = DATimelineFrameRenderer.DEFAULT_INTERVAL;
timeline = new DATimeline(this, false);
+ timeline.setRenderer(new DATimelineTinyTimeRenderer());
}
scale = new DAScale(this, 4, SWT.NONE);
return selectItem;
}
- public double getLifecycleEndTime() {
- if (null == lifecycleBar) {
- return -1;
- }
- return lifecycleBar.getEndTime();
- }
-
protected int getInterval() {
return interval;
}
- protected void setInterval(int interval) {
- this.interval = interval;
- }
-
public ScrollBar getHScrollBar() {
return hScroll;
}
private DATimelineMarker startRangeMarker;
private DATimelineMarker endRangeMarker;
- public DATimeline(Composite parent) {
- this(parent, false);
- }
-
public DATimeline(Composite parent, boolean useMarker) {
super(parent, SWT.NONE);
this.addPaintListener(chartPaintListener);
- if (true == useMarker) {
- timelineRenderer = new DATimelineTimeRenderer();
+ timelineRenderer = new DATimelineTimeRenderer();
+ if (useMarker) {
startRangeMarker = new DATimelineMarker(
ImageResources.RANGE_MARKER_START,
ImageResources.RANGE_MARKER_START_PUSH);
ImageResources.RANGE_MARKER_END_PUSH);
this.addMouseListener(new RangeMarkerMouseEventListener());
this.addMouseMoveListener(new RangeMarkerMouseMoveEventListener());
- } else {
- timelineRenderer = new DATimelineFrameRenderer();
}
}
+ public void setRenderer(DATimelineRenderer renderer) {
+ timelineRenderer = renderer;
+ }
public double getStartTime() {
return startTime;
}
import org.tizen.dynamicanalyzer.widgets.helper.ImageResources;
public class DATimelineTimeRenderer extends DATimelineRenderer {
- public static final int DEFAULT_INTERVAL = 5;
- private final Image balloon = ImageResources.TIMELINE_DETAILED_TIME_BALLOON;
- private final int balloonHalfWidth = balloon.getBounds().width / 2;
- private final int balloonHalfHeight = balloon.getBounds().height / 2;
+ protected final Image balloon = ImageResources.TIMELINE_DETAILED_TIME_BALLOON;
+ protected final int balloonHalfWidth = balloon.getBounds().width / 2;
+ protected final int balloonHalfHeight = balloon.getBounds().height / 2;
- private int startTime;
- int scale;
+ protected static final int TICK_LINE_HEIGHT_TALL = 7;
+ protected static final int TICK_LINE_HEIGHT_MID = 5;
+ protected static final int TICK_LINE_HEIGHT_SMALL = 3;
+
+ protected int startTime;
+ protected int scale;
private void drawRangeMarkers(GC gc, DATimeline timeline) {
DATimelineMarker startMarker = timeline.getStartRangeMarker();
}
}
- private void drawTimeString(GC gc, int totalSecond, int pixcelX, int pixcelY) {
+ protected void drawTimeString(GC gc, int totalSecond, int pixcelX, int pixcelY) {
Point p;
String timeString = Formatter.toTimelineFormat(totalSecond);
for (; pixcelX < rt.width; startTime++, pixcelX += secondInterval) {
if (startTime % 10 == 0) {
drawTimeString(gc, startTime, pixcelX, 1);
- gc.drawLine(pixcelX, rt.height - 7, pixcelX, rt.height - 1);
+ gc.drawLine(pixcelX, rt.height - TICK_LINE_HEIGHT_TALL,
+ pixcelX, rt.height - 1);
} else if (startTime % 5 == 0) {
if (scale >= DATimeline.SCALE_400) {
drawTimeString(gc, startTime, pixcelX, 1);
}
- gc.drawLine(pixcelX, rt.height - 5, pixcelX, rt.height - 1);
+ gc.drawLine(pixcelX, rt.height - TICK_LINE_HEIGHT_MID, pixcelX,
+ rt.height - 1);
} else {
if (scale >= DATimeline.SCALE_800) {
drawTimeString(gc, startTime, pixcelX, 1);
}
- gc.drawLine(pixcelX, rt.height - 3, pixcelX, rt.height - 1);
+ gc.drawLine(pixcelX, rt.height - TICK_LINE_HEIGHT_SMALL,
+ pixcelX, rt.height - 1);
}
}
- gc.stringExtent(time).y / 2 - 4, true);
}
}
-
}
--- /dev/null
+package org.tizen.dynamicanalyzer.widgets.timeline;
+
+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.widgets.helper.ColorResources;
+import org.tizen.dynamicanalyzer.widgets.helper.Formatter;
+
+public class DATimelineTinyTimeRenderer extends DATimelineTimeRenderer {
+ private static final int STRING_GAP = 100;
+
+ @Override
+ public void draw(GC gc, DATimeline timeline) {
+ Rectangle rt = timeline.getClientArea();
+ gc.setFont(timeTickFont);
+ gc.setBackground(ColorResources.TIMELINE_BG_COLOR);
+ gc.fillRectangle(rt);
+
+ // draw underLine
+ gc.drawLine(0, rt.height - 1, rt.width, rt.height - 1);
+
+ // draw time
+ int pixcelX = 0;
+ scale = timeline.getScale();
+ double oneSecondInterval = scale * DEFAULT_INTERVAL;
+ double startTime = timeline.getStartTime();
+
+ double timeInterval = STRING_GAP / oneSecondInterval;
+
+ double firstTime = timeInterval * ((int) (startTime / timeInterval));
+ pixcelX = (int) (oneSecondInterval * (firstTime - startTime));
+
+ for (; pixcelX < rt.width; firstTime += timeInterval, pixcelX += STRING_GAP) {
+ gc.drawLine(pixcelX, rt.height - TICK_LINE_HEIGHT_TALL, pixcelX,
+ rt.height - 1);
+
+ String timeString = null;
+ if (firstTime - (int) firstTime == 0) {
+ timeString = Formatter.toTimelineFormat((int) firstTime);
+ } else {
+ String minorityString = Double.toString(firstTime).substring(1);
+ int timeIntervalMinorityStringLength = Double.toString(
+ timeInterval).length() - 1;
+ if (minorityString.length() > timeIntervalMinorityStringLength) {
+ minorityString = minorityString.substring(0,
+ timeIntervalMinorityStringLength + 1);
+ }
+
+ while (minorityString.endsWith("0")) {
+ minorityString = minorityString.substring(0,
+ minorityString.length() - 1);
+ }
+ timeString = Formatter.toTimelineFormat((int) firstTime)
+ + minorityString;
+ }
+
+ Point p;
+ p = gc.textExtent(timeString, SWT.DRAW_MNEMONIC);
+ gc.setForeground(ColorResources.TIMELINE_NUMBER_COLOR);
+ gc.drawText(timeString, pixcelX - p.x / 2, 1, true);
+ gc.setForeground(ColorResources.TIMELINE_TICK_COLOR);
+ }
+ }
+}
});
}
+ /* processes load */
String[] processLoadDatas = logData.getProcessLoad().split(
CommonConstants.COMMA);
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Display;
import org.tizen.dynamicanalyzer.common.CommonConstants;
import org.tizen.dynamicanalyzer.communicator.DACommunicator;
import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;
import org.tizen.dynamicanalyzer.swap.logparser.Logs;
import org.tizen.dynamicanalyzer.swap.model.data.LogData;
import org.tizen.dynamicanalyzer.swap.model.data.SystemData;
-import org.tizen.dynamicanalyzer.ui.kernel.CallFlowChartRenderer;
-import org.tizen.dynamicanalyzer.ui.kernel.ContextSwitchingChartRenderer;
-import org.tizen.dynamicanalyzer.ui.kernel.ContextSwitchingChartSeriesItem;
import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
import org.tizen.dynamicanalyzer.utils.Formatter;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.AutoRangeType;
import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem;
import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardHeightChangeableItem;
import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
-import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu;
public class CPUCoreChart extends TimelineChart {
private static CPUCoreChart instance = null;