private double startY = 0;
private double endY = 0;
private boolean bAutoHeightRange = false;
+ private boolean bSeriesHeightRange = false;
private Image backgroundImage = null;
private DACustomChart chart;
private DACustomChartPlotIntervalMarker marker = null;
bAutoHeightRange = auto;
}
+
+ public boolean isSeriesHeightRange() {
+ return bSeriesHeightRange;
+ }
+
+ public void setSeriesHeightRange(boolean bSeriesHeightRange) {
+ this.bSeriesHeightRange = bSeriesHeightRange;
+ }
+
public double getStartX() {
return startX;
}
return getXPixcelFromX(x, r);
}
- public int getYPixcelFromY(double y, Rectangle r) {
- double pixcelY = ((double) r.height) * (y - startY) / (endY - startY);
+ public int getYPixcelFromY(DACustomChartSeries series, double y, Rectangle r) {
+ double endY = 0;
+ if(true == bSeriesHeightRange){
+ if(true == bAutoHeightRange){
+ endY = series.getMaxY()*1.1;
+ }
+ else{
+ endY = series.getEndY()*1.1;
+ }
+ }
+ else{
+ endY = this.endY;
+ }
+
+ double pixcelY;
+ if(startY == endY){
+ pixcelY = 0;
+ }
+ else{
+ pixcelY = ((double) r.height) * (y - startY) / (endY - startY);
+ }
return (int) (r.height - pixcelY - 1);
}
-
- public int getYPixcelFromY(double y) {
+
+ public int getYPixcelFromY(DACustomChartSeries series, double y) {
Rectangle r = chart.getBounds();
- return getYPixcelFromY(y, r);
+ return getYPixcelFromY(series, y, r);
}
public double getXFromXPixcel(int xPixcel, Rectangle r) {
.get(index).getY();
double xVal = series.getSeriesItemList()
.get(index).getX();
-// text = series.getName() + ":" + yVal
-// + series.getSeriesUnit();
+
text = series.getName() + " : " + series.getSeriesItemList()
.get(index).getTooltipText();
-// System.out.println(series.getName()+" yVal : " + yVal);
-
+
gc.setForeground(tooltip.getLineColor());
gc.setLineStyle(SWT.LINE_DOT);
- gc.drawLine(0, plot.getYPixcelFromY(yVal), r.width,
- plot.getYPixcelFromY(yVal));
+ gc.drawLine(0, plot.getYPixcelFromY(series,yVal,r), r.width,
+ plot.getYPixcelFromY(series,yVal,r));
gc.drawLine(plot.getXPixcelFromX(xVal), 0,
plot.getXPixcelFromX(xVal), r.height);
gc.setLineStyle(SWT.LINE_CUSTOM);
int seriesItemSize = seriesItems.size();
DACustomChartSeriesItem seriesItem;
+ Color color = series.getColor();
+ gc.setBackground(color);
+ gc.setAntialias(SWT.ON);
for (int i = 0; i < seriesItemSize; i++) {
seriesItem = seriesItems.get(i);
double currentX = seriesItem.getX();
if (currentX + barWidthTime < plot.getStartX()) {
continue;
- } else if (currentX > plot.getEndX()) {
+ } else if (currentX - barWidthTime > plot.getEndX()) {
break;
}
int pixcelStartX = plot.getXPixcelFromX(seriesItem.getX(), r);
- int pixcelStartY = plot.getYPixcelFromY(seriesItem.getY(), r);
+ int pixcelStartY = plot.getYPixcelFromY(series,seriesItem.getY(), r);
int barWidth = plot.getXPixcelFromX(currentX + barWidthTime, r);
if (barWidth < 1) {
barWidth = 1;
}
- Color color = seriesItem.getEventColor();
- if (null == color) {
- color = series.getColor();
+ color = seriesItem.getEventColor();
+ if (null != color) {
+ gc.setBackground(color);
+ gc.fillRectangle(pixcelStartX, pixcelStartY, barWidth
+ - pixcelStartX, r.y + r.height - pixcelStartY);
+ gc.setBackground(series.getColor());
+ }
+ else{
+ gc.fillRectangle(pixcelStartX, pixcelStartY, barWidth
+ - pixcelStartX, r.y + r.height - pixcelStartY);
}
- gc.setBackground(color);
- gc.setAntialias(SWT.ON);
- gc.fillRectangle(pixcelStartX, pixcelStartY, barWidth
- - pixcelStartX, r.y + r.height - pixcelStartY);
}
}
DACustomChartSeriesItem seriesItem = seriesItems.get(0);
int oldPixcelX = plot.getXPixcelFromX(seriesItem.getX(), r);
- int oldPixcelY = plot.getYPixcelFromY(seriesItem.getY(), r);
+ int oldPixcelY = plot.getYPixcelFromY(series,seriesItem.getY(), r);
if (seriesItemSize == 1) {
if (oldPixcelX < r.x) {
int newPixcelY = 0;
Color color = series.getColor();
+ gc.setForeground(color);
+ gc.setLineStyle(SWT.LINE_SOLID);
+ gc.setAntialias(SWT.ON);
for (int i = 1; i < seriesItemSize; i++) {
seriesItem = seriesItems.get(i);
double currentX = seriesItem.getX();
if (currentX < plot.getStartX()) {
continue;
- } else if (currentX > plot.getEndX()) {
- break;
} else if (newPixcelX == 0 && newPixcelY == 0) {
oldPixcelX = plot.getXPixcelFromX(
seriesItems.get(i - 1).getX(), r);
- oldPixcelY = plot.getYPixcelFromY(
+ oldPixcelY = plot.getYPixcelFromY(series,
seriesItems.get(i - 1).getY(), r);
} else {
oldPixcelX = newPixcelX;
oldPixcelY = newPixcelY;
}
newPixcelX = plot.getXPixcelFromX(currentX, r);
- newPixcelY = plot.getYPixcelFromY(seriesItem.getY(), r);
+ newPixcelY = plot.getYPixcelFromY(series,seriesItem.getY(), r);
- gc.setForeground(color);
- gc.setLineStyle(SWT.LINE_SOLID);
- gc.setAntialias(SWT.ON);
gc.drawLine(oldPixcelX, oldPixcelY, newPixcelX, newPixcelY);
+ if (currentX > plot.getEndX()) {
+ break;
+ }
}
}
DACustomChartSeriesItem seriesItem = seriesItems.get(0);
int oldPixcelX = plot.getXPixcelFromX(seriesItem.getX(), r);
- int oldPixcelY = plot.getYPixcelFromY(seriesItem.getY(), r);
+ int oldPixcelY = plot.getYPixcelFromY(series,seriesItem.getY(), r);
int baseY = r.y + r.height;
if (seriesItemSize == 1) {
int newPixcelY = 0;
Color color = series.getColor();
+ gc.setAntialias(SWT.ON);
+ gc.setBackground(color);
for (int i = 1; i < seriesItemSize; i++) {
seriesItem = seriesItems.get(i);
double currentX = seriesItem.getX();
if (currentX < plot.getStartX()) {
continue;
- } else if (currentX > plot.getEndX()) {
- break;
- } else if (newPixcelX == 0 && newPixcelY == 0) {
+ }else if (newPixcelX == 0 && newPixcelY == 0) {
oldPixcelX = plot.getXPixcelFromX(
seriesItems.get(i - 1).getX(), r);
- oldPixcelY = plot.getYPixcelFromY(
+ oldPixcelY = plot.getYPixcelFromY(series,
seriesItems.get(i - 1).getY(), r);
} else {
oldPixcelX = newPixcelX;
oldPixcelY = newPixcelY;
}
newPixcelX = plot.getXPixcelFromX(currentX, r);
- newPixcelY = plot.getYPixcelFromY(seriesItem.getY(), r);
+ newPixcelY = plot.getYPixcelFromY(series,seriesItem.getY(), r);
int[] polygon = { oldPixcelX, baseY, oldPixcelX, oldPixcelY,
- newPixcelX, newPixcelY, newPixcelX, baseY };
+ newPixcelX+1, newPixcelY, newPixcelX+1, baseY };
- gc.setAntialias(SWT.ON);
- gc.setBackground(color);
gc.fillPolygon(polygon);
+ if (currentX > plot.getEndX()) {
+ break;
+ }
}
}
}
import org.jfree.data.xy.XYSeries;
import org.tizen.dynamicanalyzer.ColorResources;
import org.tizen.dynamicanalyzer.ImageResources;
+import org.tizen.dynamicanalyzer.constants.LogCenterConstants;
import org.tizen.dynamicanalyzer.constants.TimelineConstants;
import org.tizen.dynamicanalyzer.model.LogPackage;
+import org.tizen.dynamicanalyzer.model.Logs;
import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;
import org.tizen.dynamicanalyzer.widgets.chart.DACustomChart;
import org.tizen.dynamicanalyzer.widgets.chart.DACustomChartSeries;
+import org.tizen.dynamicanalyzer.widgets.chart.DACustomChartSeriesItem;
public class DAFileChart extends DATimelineChart {
private static DAFileChart instance = null;
+
+ private long readByte = 0;
+ private long writeByte = 0;
+ private int fdCount = 0;
private DACustomChartSeries readSeries;
private DACustomChartSeries writeSeries;
chart.addSeries(fdCountSeries);
setChartStyle();
+ chart.getPlot().setSeriesHeightRange(true);
return chart;
}
readSeries.clear();
writeSeries.clear();
fdCountSeries.clear();
+ readByte = 0;
+ writeByte = 0;
+ fdCount = 0;
}
@Override
public void dispose() {
// TODO Auto-generated method stub
-
}
@Override
public void parsingLogPackage(LogPackage logPack, int probeType) {
- // TODO Auto-generated method stub
-
+ if(!isAbleToParse(logPack, probeType)) {
+ return;
+ }
+
+ Logs logs = logPack.getLogs(probeType);
+ List<List<String>> logList = logs.getLogs();
+ for (int i = 0; i < logList.size(); i++) {
+ parsingLog(logList.get(i));
+ }
}
+
+ private void parsingLog(List<String> log) {
+ if (null == log || 0 > log.size()) {
+ return;
+ }
+
+ /* API check */
+ int fdApiType = 0;
+ try {
+ //FIXME trim
+ fdApiType = Integer.parseInt(log.get(LogCenterConstants.RESOURCE_FDAPITYPE_INDEX).trim());
+ } catch (NumberFormatException ne) {
+ ne.printStackTrace();
+ }
+
+ long size = 0;
+
+ if (fdApiType == TimelineConstants.FD_API_TYPE_READ || fdApiType == TimelineConstants.FD_API_TYPE_WRITE) {
+ if (log.get(LogCenterConstants.RESOURCE_SIZE_INDEX).isEmpty() || !log.get(LogCenterConstants.ERROR_INDEX).equals("0")) { //$NON-NLS-1$
+ return;
+ }
+
+ try {
+ String resourceSizeIndexStr = log.get(LogCenterConstants.RESOURCE_SIZE_INDEX).trim();
+ size = Long.parseLong(resourceSizeIndexStr);
+ } catch (NumberFormatException ne) {
+ ne.printStackTrace();
+ } catch (NullPointerException ne) {
+ ne.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ switch(fdApiType) {
+ case TimelineConstants.FD_API_TYPE_READ:
+ readByte += size;
+ break;
+ case TimelineConstants.FD_API_TYPE_WRITE:
+ writeByte += size;
+ break;
+ }
+ } else {
+ return;
+ }
+ }
+
+ public void updateRW(long time) {
+ fdCountSeries.addSeriesItem(new DACustomChartSeriesItem(time, fdCount,String.valueOf(fdCount)));
+
+ readSeries.addSeriesItem(new DACustomChartSeriesItem(time, readByte, String.valueOf(readByte)
+ + TimelineChartLabels.UNIT_BYTE));
+ readByte = 0;
+
+ writeSeries.addSeriesItem(new DACustomChartSeriesItem(time, writeByte, String.valueOf(writeByte)
+ + TimelineChartLabels.UNIT_BYTE));
+ writeByte = 0;
+ }
}