package org.tizen.dynamicanalyzer.timeline;
+import java.awt.Graphics2D;
+import java.awt.Paint;
+import java.awt.Stroke;
+import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.widgets.Shell;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.JFreeChart;
+import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.IntervalMarker;
import org.jfree.chart.plot.PlotRenderingInfo;
import org.jfree.chart.plot.ValueMarker;
import org.jfree.data.xy.XYSeries;
import org.jfree.experimental.chart.swt.ChartComposite;
import org.jfree.ui.Layer;
+import org.jfree.ui.RectangleEdge;
import org.tizen.dynamicanalyzer.AnalyzerManager;
import org.tizen.dynamicanalyzer.ColorResources;
import org.tizen.dynamicanalyzer.FontResources;
indexInfoLabelList = new ArrayList<Label>(4);
initSelectionMarker();
- tooltipMarker = new ValueMarker(TempConstants.NOT_INITED);
}
private Listener areaResizeListener = new Listener() {
@Override
public void mouseExit(MouseEvent e) {
disposeTooltip();
- tooltipMarker.setValue(TempConstants.NOT_INITED);
+ //FIXME tooltip
+// tooltipMarker.setValue(TempConstants.NOT_INITED);
}
@Override
double chartX = xyplot.getDomainAxis().java2DToValue(e.x, rect2D, xyplot.getDomainAxisEdge());
tooltipValue = getTooltipXPosition(chartX);
-
- tooltipMarker.setValue(tooltipValue);
+ //FIXME tooltip
+// tooltipMarker.setValue(tooltipValue);
+
+ //FIXME
+// Graphics2D g2 = (Graphics2D) itemChartComp.getChart().
+// createBufferedImage(canvas.getBounds().width, canvas.getBounds().height).getGraphics();
+// drawVerticalLine(g2, rect2D, 15, new BasicStroke(3), java.awt.Color.RED, xyplot);
+// xyplot.draw(g2, rect2D, null, null, null);
}
};
+ @SuppressWarnings("unused")
+ private void drawVerticalLine(Graphics2D g2, Rectangle2D dataArea, double value, Stroke stroke, Paint paint, XYPlot xyplot) {
+ ValueAxis axis = xyplot.getDomainAxis();
+ if(axis.getRange().contains(value)) {
+ double xx = axis.valueToJava2D(value, dataArea, RectangleEdge.BOTTOM);
+ Line2D line = new Line2D.Double(xx, dataArea.getMinY(), xx, dataArea.getMaxY());
+ g2.setStroke(stroke);
+ g2.setPaint(paint);
+ g2.draw(line);
+ }
+ }
+
private MouseMoveListener chartMouseMoveListener = new MouseMoveListener() {
@Override
public void mouseMove(MouseEvent e) {
double x = xyplot.getDomainAxis().java2DToValue(e.x, rect2D, xyplot.getDomainAxisEdge());
if(tooltipValue != getTooltipXPosition(x)) {
tooltipValue = getTooltipXPosition(x);
-
- tooltipMarker.setValue(tooltipValue);
+ //FIXME tooltip
+// tooltipMarker.setValue(tooltipValue);
int chartID = (Integer) (itemChartComp.getData());
List<XYSeries> seriesList;
case TimelineConstants.CHART_TYPE_CPU:
seriesList = CPUChart.getSeriesList();
for(int i = 0; i < seriesList.size(); i++) {
- double selectedTime = xyplot.getDomainAxis().java2DToValue(e.x, rect2D, xyplot.getDomainAxisEdge());
- double yValue = getYbyX(seriesList.get(i).toArray(), selectedTime);
+ double yValue = getYbyX(seriesList.get(i).toArray(), tooltipValue);
indexInfoLabelList.get(i).setText(CPUChart.getTooltipContent(i, yValue));
}
seriesList = CPUCoreChart.getSeriesList();
int seriesSize = CPUCoreChart.getCoreSize() == TempConstants.NOT_INITED ? 4 : CPUCoreChart.getCoreSize();
for(int i = 0; i < seriesSize; i++) {
- double selectedTime = xyplot.getDomainAxis().java2DToValue(e.x, rect2D, xyplot.getDomainAxisEdge());
- double yValue = getYbyX(seriesList.get(i).toArray(), selectedTime);
+ double yValue = getYbyX(seriesList.get(i).toArray(), tooltipValue);
indexInfoLabelList.get(i).setText(CPUCoreChart.getTooltipContent(i, yValue));
}
case TimelineConstants.CHART_TYPE_CPU_FREQUENCY:
seriesList = CPUFrequencyChart.getSeriesList();
for(int i = 0; i < seriesList.size(); i++) {
- double selectedTime = xyplot.getDomainAxis().java2DToValue(e.x, rect2D, xyplot.getDomainAxisEdge());
- double yValue = getYbyX(seriesList.get(i).toArray(), selectedTime);
+ double yValue = getYbyX(seriesList.get(i).toArray(), tooltipValue);
indexInfoLabelList.get(i).setText(CPUFrequencyChart.getTooltipContent(i, yValue));
}
case TimelineConstants.CHART_TYPE_HEAP:
seriesList = HeapChart.getSeriesList();
for(int i = 0; i < seriesList.size(); i++) {
- double selectedTime = xyplot.getDomainAxis().java2DToValue(e.x, rect2D, xyplot.getDomainAxisEdge());
- double yValue = getYbyX(seriesList.get(i).toArray(), selectedTime);
+ double yValue = getYbyX(seriesList.get(i).toArray(), tooltipValue);
indexInfoLabelList.get(i).setText(HeapChart.getTooltipContent(i, yValue));
}
case TimelineConstants.CHART_TYPE_PROCESS_SIZE:
seriesList = ProcessMemoryChart.getSeriesList();
for(int i = 0; i < seriesList.size(); i++) {
- double selectedTime = xyplot.getDomainAxis().java2DToValue(e.x, rect2D, xyplot.getDomainAxisEdge());
- double yValue = getYbyX(seriesList.get(i).toArray(), selectedTime);
+ double yValue = getYbyX(seriesList.get(i).toArray(), tooltipValue);
indexInfoLabelList.get(i).setText(ProcessMemoryChart.getTooltipContent(i, yValue));
}
case TimelineConstants.CHART_TYPE_SYSTEM_MEMORY:
seriesList = SystemMemoryChart.getSeriesList();
for(int i = 0; i < seriesList.size(); i++) {
- double selectedTime = xyplot.getDomainAxis().java2DToValue(e.x, rect2D, xyplot.getDomainAxisEdge());
- double yValue = getYbyX(seriesList.get(i).toArray(), selectedTime);
+ double yValue = getYbyX(seriesList.get(i).toArray(), tooltipValue);
indexInfoLabelList.get(i).setText(SystemMemoryChart.getTooltipContent(i, yValue));
}
case TimelineConstants.CHART_TYPE_FILE:
seriesList = FileChart.getSeriesList();
for(int i = 0; i < seriesList.size(); i++) {
- double selectedTime = xyplot.getDomainAxis().java2DToValue(e.x, rect2D, xyplot.getDomainAxisEdge());
- double yValue = getYbyX(seriesList.get(i).toArray(), selectedTime);
+ double yValue = getYbyX(seriesList.get(i).toArray(), tooltipValue);
indexInfoLabelList.get(i).setText(FileChart.getTooltipContent(i, yValue));
}
}
selectionMarker = null;
+ tooltipMarker = null;
TimelineMaster.getInstance().clearChartPlot();
}
TimelineMaster.getInstance().setSelectionMarker(selectionMarker);
}
+ private void initTooltipMarker() {
+ tooltipMarker = new ValueMarker(TempConstants.NOT_INITED);
+ }
+
private void setSelectionMarkerEndVal(Double endTime) {
double selectionMarkerStartValue = selectionMarker.getStartValue();
double selectionMarkerEndValue = selectionMarker.getEndValue();
if (selectionMarker == null) {
initSelectionMarker();
}
+ if(tooltipMarker == null) {
+ initTooltipMarker();
+ }
itemChartComposite.getChart().getXYPlot().addDomainMarker(selectionMarker, Layer.FOREGROUND);
- itemChartComposite.getChart().getXYPlot().addDomainMarker(tooltipMarker, Layer.FOREGROUND);
+ //FIXME tooltip
+// itemChartComposite.getChart().getXYPlot().addDomainMarker(tooltipMarker, Layer.FOREGROUND);
TimelineMaster.getInstance().addChartPlot(itemChartComposite.getChart().getXYPlot());
iteminfo.infoComp = itemInfoComp;
ItemList.get(i).chartComp.removeMouseTrackListener(chartMouseTrackListener);
ItemList.get(i).chartComp.removeMouseMoveListener(chartMouseMoveListener);
ItemList.get(i).chartComp.getChart().getXYPlot().removeDomainMarker(selectionMarker);
- ItemList.get(i).chartComp.getChart().getXYPlot().removeDomainMarker(tooltipMarker);
+ //FIXME tooltip
+// ItemList.get(i).chartComp.getChart().getXYPlot().removeDomainMarker(tooltipMarker);
}
}
ItemList.clear();
composite.setBackgroundImage(itemImage);
}
- // private void setItemInfoGradientBGselected(Composite composite) {
- //
- // if (null == composite || composite.isDisposed()) {
- // return;
- // }
- //
- // Rectangle rect = composite.getClientArea();
- //
- // if (null == selectedItemImage) {
- // selectedItemImage = new Image(composite.getDisplay(), 1, Math.max(1,
- // rect.height));
- // GC gc = new GC(selectedItemImage);
- // gc.setForeground(ColorResources.ITEM_BLUE_BRIGHT); // brighter
- // gc.setBackground(ColorResources.ITEM_BLUE_DARK); // darker
- //
- // gc.fillGradientRectangle(0, 0, 1, rect.height, true);
- // gc.dispose();
- // } else if (selectedItemImage.getBounds().height != rect.height) {
- //
- // selectedItemImage.dispose();
- // selectedItemImage = new Image(composite.getDisplay(), 1, Math.max(1,
- // rect.height));
- // GC gc = new GC(selectedItemImage);
- // gc.setForeground(ColorResources.ITEM_BLUE_BRIGHT); // brighter
- // gc.setBackground(ColorResources.ITEM_BLUE_DARK); // darker
- //
- // gc.fillGradientRectangle(0, 0, 1, rect.height, true);
- // gc.dispose();
- // }
- //
- // composite.setBackgroundImage(selectedItemImage);
- // }
-
- // private void setItemInfoSelectedLine(ItemInfo info, boolean isSelected) {
- // ChartComposite chartComp = info.chartComp;
- //
- // if (null == chartComp || null == chartComp.getChart()) {
- // return;
- // }
- //
- // if (isSelected) {
- // chartComp.getChart().setBackgroundPaint(ColorResources.ITEM_BLUE_AWT);
- // } else {
- // chartComp.getChart().setBackgroundPaint(ColorResources.ITEM_BG_AWT);
- // }
- // }
+ @SuppressWarnings("unused")
+ private void setItemInfoGradientBGselected(Composite composite) {
+ if (null == composite || composite.isDisposed()) {
+ return;
+ }
+
+ Rectangle rect = composite.getClientArea();
+
+ if (null == selectedItemImage) {
+ selectedItemImage = new Image(composite.getDisplay(), 1, Math.max(1, rect.height));
+ GC gc = new GC(selectedItemImage);
+ gc.setForeground(ColorResources.ITEM_BLUE_BRIGHT); // brighter
+ gc.setBackground(ColorResources.ITEM_BLUE_DARK); // darker
+
+ gc.fillGradientRectangle(0, 0, 1, rect.height, true);
+ gc.dispose();
+ } else if (selectedItemImage.getBounds().height != rect.height) {
+
+ selectedItemImage.dispose();
+ selectedItemImage = new Image(composite.getDisplay(), 1, Math.max(1, rect.height));
+ GC gc = new GC(selectedItemImage);
+ gc.setForeground(ColorResources.ITEM_BLUE_BRIGHT); // brighter
+ gc.setBackground(ColorResources.ITEM_BLUE_DARK); // darker
+
+ gc.fillGradientRectangle(0, 0, 1, rect.height, true);
+ gc.dispose();
+ }
+
+ composite.setBackgroundImage(selectedItemImage);
+ }
+
+ @SuppressWarnings("unused")
+ private void setItemInfoSelectedLine(ItemInfo info, boolean isSelected) {
+ ChartComposite chartComp = info.chartComp;
+
+ if (null == chartComp || null == chartComp.getChart()) {
+ return;
+ }
+
+ if (isSelected) {
+ chartComp.getChart().setBackgroundPaint(ColorResources.ITEM_BLUE_AWT);
+ } else {
+ chartComp.getChart().setBackgroundPaint(ColorResources.ITEM_BG_AWT);
+ }
+ }
private void setItemSize(ItemInfo itemInfo, int width, int SIZE_MODE) {
if (null == itemInfo) {