|
From: Carlos <ma...@us...> - 2007-10-17 19:06:43
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/graphics In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv2952/src/java/net/sf/tail/graphics Modified Files: SeriesDataset.java Added Files: CriteriaChart.java CriteriaDataset.java Log Message: Commit do novo chart que será usado no TailS. --- NEW FILE: CriteriaDataset.java --- package net.sf.tail.graphics; import java.util.List; import net.sf.tail.TimeSeries; import net.sf.tail.report.Report; import org.jfree.data.DefaultKeyedValues2D; import org.jfree.data.category.CategoryDataset; import org.jfree.data.general.AbstractDataset; @SuppressWarnings("unchecked") public class CriteriaDataset extends AbstractDataset implements CategoryDataset { private static final long serialVersionUID = -7204964027452086107L; private DefaultKeyedValues2D data; private final int DATASET_SIZE; private List<Report> reports; private int firstIndex; private int lastIndex; private TimeSeries series; public CriteriaDataset(List<Report> reports, TimeSeries series, int datasetSize) { this.data = new DefaultKeyedValues2D(); this.reports = reports; this.series = series; this.DATASET_SIZE = datasetSize; this.firstIndex = series.getBegin(); this.lastIndex = series.getBegin() + DATASET_SIZE - 1; loadValues(firstIndex, lastIndex); } private void loadValues(int firstIndex, int lastIndex) { data = new DefaultKeyedValues2D(); for (int i = 0; i < reports.size(); i++) { for (int j = firstIndex; j <= lastIndex; j++) { data.addValue(reports.get(i).getApplyedCriterion().calculate(series, reports.get(i).getTradesUntilIndex(j)), reports.get(i).getName(), series.getTick(j).getDate() .toString("hh:mm d/M/yyyy")); } } } public int getColumnIndex(Comparable key) { return this.data.getColumnIndex(key); } public Comparable getColumnKey(int column) { return this.data.getColumnKey(column); } public List getColumnKeys() { return this.data.getColumnKeys(); } public int getRowIndex(Comparable key) { return this.data.getRowIndex(key); } public Comparable getRowKey(int row) { return this.data.getRowKey(row); } public List getRowKeys() { return this.data.getRowKeys(); } public Number getValue(Comparable rowKey, Comparable columnKey) { return this.data.getValue(rowKey, columnKey); } public int getColumnCount() { return this.data.getColumnCount(); } public int getRowCount() { return this.data.getRowCount(); } public Number getValue(int row, int column) { return this.data.getValue(row, column); } public void moveRight() { if (lastIndex + 1 < series.getSize()) { lastIndex++; for (Report report : reports) { data.addValue(report.getApplyedCriterion().calculate(series, report.getTradesUntilIndex(lastIndex)), report.getName(), series.getTick(lastIndex).getDate() .toString("hh:mm d/M/yyyy")); } if (data.getColumnCount() >= DATASET_SIZE) { firstIndex++; data.removeColumn(0); } fireDatasetChanged(); } } public void moveLeft() { if (firstIndex > 0) { firstIndex--; lastIndex--; loadValues(firstIndex, lastIndex); fireDatasetChanged(); } } } --- NEW FILE: CriteriaChart.java --- package net.sf.tail.graphics; import java.awt.Color; import java.awt.Font; import net.sf.tail.graphics.forms.ShapeFactory; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.data.general.DatasetChangeEvent; import org.jfree.data.general.DatasetChangeListener; public class CriteriaChart implements DatasetChangeListener { private CategoryDataset dataSet; private CategoryPlot plot; private LineAndShapeRenderer lineAndShapeRenderer; public CriteriaChart(CategoryDataset dataSet) { this.dataSet = dataSet; this.dataSet.addChangeListener(this); this.lineAndShapeRenderer = new LineAndShapeRenderer(true, true); } public JFreeChart createChart(String chartName) { JFreeChart jfreechart = ChartFactory.createLineChart(chartName, "Date", "Value", dataSet, PlotOrientation.VERTICAL, true, true, false); plot = (CategoryPlot) jfreechart.getPlot(); plot.setBackgroundPaint(Color.WHITE); // Setando labels em 90 graus CategoryAxis categoryAxis = plot.getDomainAxis(); categoryAxis.setVisible(false); // categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_90); // Setando tamanho do grafico NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setAutoRangeIncludesZero(false); // Setando tamanho do label categoryAxis.setLabelFont(new Font("SansSerif", 0, 10)); // Setando tamanho do label de cada tick categoryAxis.setTickLabelFont(new Font("SansSerif", 0, 10)); // gerando setas setSeriesShapes(); return jfreechart; } /** * @param dataSet * @param plot */ private void setSeriesShapes() { for (int i = 0; i < dataSet.getRowCount(); i++) { lineAndShapeRenderer.setSeriesShape(i, ShapeFactory.getPoint()); } plot.setRenderer(lineAndShapeRenderer); } public void datasetChanged(DatasetChangeEvent event) { setSeriesShapes(); } } Index: SeriesDataset.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/graphics/SeriesDataset.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SeriesDataset.java 3 Sep 2007 22:10:43 -0000 1.7 --- SeriesDataset.java 17 Oct 2007 19:06:39 -0000 1.8 *************** *** 1,2 **** --- 1,3 ---- + package net.sf.tail.graphics; *************** *** 149,151 **** } } ! } --- 150,152 ---- } } ! } \ No newline at end of file |