KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tc > admin > DemoChartFactory


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package com.tc.admin;
5
6 import java.awt.Color JavaDoc;
7 import java.text.SimpleDateFormat JavaDoc;
8 import org.jfree.chart.ChartFactory;
9 import org.jfree.chart.JFreeChart;
10 import org.jfree.chart.axis.DateAxis;
11 import org.jfree.chart.plot.XYPlot;
12 import org.jfree.chart.renderer.xy.XYItemRenderer;
13 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
14 import org.jfree.data.time.TimeSeries;
15 import org.jfree.data.time.TimeSeriesCollection;
16 import org.jfree.data.xy.XYDataset;
17 import org.jfree.ui.RectangleInsets;
18
19 public class DemoChartFactory {
20   public static JFreeChart getChart(TimeSeries ts) {
21     XYDataset dataset = createDataset(ts);
22     return createChart(dataset);
23   }
24
25   private static JFreeChart createChart(XYDataset dataset) {
26     JFreeChart chart =
27       ChartFactory.createTimeSeriesChart(
28           "Transaction Rate",
29           "Time",
30           "Txn Per Second",
31           dataset,
32           true,
33           true,
34           false);
35
36     chart.setBackgroundPaint(Color.white);
37
38     XYPlot plot = (XYPlot)chart.getPlot();
39
40     plot.setBackgroundPaint(Color.lightGray);
41     plot.setDomainGridlinePaint(Color.white);
42     plot.setRangeGridlinePaint(Color.white);
43     plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
44     plot.setDomainCrosshairVisible(true);
45     plot.setRangeCrosshairVisible(true);
46
47     XYItemRenderer r = plot.getRenderer();
48
49     if(r instanceof XYLineAndShapeRenderer) {
50       XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer)r;
51
52       renderer.setBaseShapesVisible(true);
53       renderer.setBaseShapesFilled(true);
54     }
55
56     DateAxis axis = (DateAxis) plot.getDomainAxis();
57     axis.setDateFormatOverride(new SimpleDateFormat JavaDoc("kk:mm:ss"));
58
59     return chart;
60   }
61
62   private static XYDataset createDataset(TimeSeries s1) {
63     TimeSeriesCollection dataset = new TimeSeriesCollection();
64
65     dataset.addSeries(s1);
66     
67     dataset.setDomainIsPointsInTime(true);
68
69     return dataset;
70   }
71 }
72
Popular Tags