KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfree > experimental > chart > swt > demo > SWTBarChartDemo1


1 /* ===========================================================
2  * JFreeChart : a free chart library for the Java(tm) platform
3  * ===========================================================
4  *
5  * (C) Copyright 2000-2006, by Object Refinery Limited and Contributors.
6  *
7  * Project Info: http://www.jfree.org/jfreechart/index.html
8  *
9  * This library is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17  * License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22  * USA.
23  *
24  * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
25  * in the United States and other countries.]
26  *
27  * ---------------------
28  * SWTBarChartDemo1.java
29  * ---------------------
30  * (C) Copyright 2006, by Object Refinery Limited and Contributors.
31  *
32  * Original Author: David Gilbert (for Object Refinery Limited);
33  * Contributor(s):
34  *
35  * Changes
36  * -------
37  * 23-Aug-2006 : New class (DG);
38  *
39  */

40
41 package org.jfree.experimental.chart.swt.demo;
42
43 import java.awt.Color JavaDoc;
44
45 import org.eclipse.swt.SWT;
46 import org.eclipse.swt.layout.FillLayout;
47 import org.eclipse.swt.widgets.Display;
48 import org.eclipse.swt.widgets.Shell;
49 import org.jfree.chart.ChartFactory;
50 import org.jfree.chart.JFreeChart;
51 import org.jfree.chart.axis.CategoryAxis;
52 import org.jfree.chart.axis.CategoryLabelPositions;
53 import org.jfree.chart.axis.NumberAxis;
54 import org.jfree.chart.plot.CategoryPlot;
55 import org.jfree.chart.plot.PlotOrientation;
56 import org.jfree.chart.renderer.category.BarRenderer;
57 import org.jfree.data.category.CategoryDataset;
58 import org.jfree.data.category.DefaultCategoryDataset;
59 import org.jfree.experimental.chart.swt.ChartComposite;
60
61 /**
62  * An SWT demo.
63  */

64 public class SWTBarChartDemo1 {
65     
66     /**
67      * Returns a sample dataset.
68      *
69      * @return The dataset.
70      */

71     private static CategoryDataset createDataset() {
72         
73         // row keys...
74
String JavaDoc series1 = "First";
75         String JavaDoc series2 = "Second";
76         String JavaDoc series3 = "Third";
77
78         // column keys...
79
String JavaDoc category1 = "Category 1";
80         String JavaDoc category2 = "Category 2";
81         String JavaDoc category3 = "Category 3";
82         String JavaDoc category4 = "Category 4";
83         String JavaDoc category5 = "Category 5";
84
85         // create the dataset...
86
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
87
88         dataset.addValue(1.0, series1, category1);
89         dataset.addValue(4.0, series1, category2);
90         dataset.addValue(3.0, series1, category3);
91         dataset.addValue(5.0, series1, category4);
92         dataset.addValue(5.0, series1, category5);
93
94         dataset.addValue(5.0, series2, category1);
95         dataset.addValue(7.0, series2, category2);
96         dataset.addValue(6.0, series2, category3);
97         dataset.addValue(8.0, series2, category4);
98         dataset.addValue(4.0, series2, category5);
99
100         dataset.addValue(4.0, series3, category1);
101         dataset.addValue(3.0, series3, category2);
102         dataset.addValue(2.0, series3, category3);
103         dataset.addValue(3.0, series3, category4);
104         dataset.addValue(6.0, series3, category5);
105         
106         return dataset;
107         
108     }
109     
110     /**
111      * Creates a sample chart.
112      *
113      * @param dataset the dataset.
114      *
115      * @return The chart.
116      */

117     private static JFreeChart createChart(CategoryDataset dataset) {
118         
119         // create the chart...
120
JFreeChart chart = ChartFactory.createBarChart(
121             "Bar Chart Demo", // chart title
122
"Category", // domain axis label
123
"Value", // range axis label
124
dataset, // data
125
PlotOrientation.VERTICAL, // orientation
126
true, // include legend
127
true, // tooltips?
128
false // URLs?
129
);
130
131         // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
132

133         // set the background color for the chart...
134
chart.setBackgroundPaint(Color.white);
135
136         // get a reference to the plot for further customisation...
137
CategoryPlot plot = chart.getCategoryPlot();
138         plot.setBackgroundPaint(Color.lightGray);
139         plot.setDomainGridlinePaint(Color.white);
140         plot.setDomainGridlinesVisible(true);
141         plot.setRangeGridlinePaint(Color.white);
142
143         // set the range axis to display integers only...
144
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
145         rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
146
147         // disable bar outlines...
148
BarRenderer renderer = (BarRenderer) plot.getRenderer();
149         renderer.setDrawBarOutline(false);
150
151         CategoryAxis domainAxis = plot.getDomainAxis();
152         domainAxis.setCategoryLabelPositions(
153             CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0)
154         );
155         // OPTIONAL CUSTOMISATION COMPLETED.
156

157         return chart;
158         
159     }
160     
161     /**
162      * Starting point for the demonstration application.
163      *
164      * @param args ignored.
165      */

166     public static void main( String JavaDoc[] args )
167     {
168         JFreeChart chart = createChart(createDataset());
169         Display display = new Display();
170         Shell shell = new Shell(display);
171         shell.setSize(600, 300);
172         shell.setLayout(new FillLayout());
173         shell.setText("Test for jfreechart running with SWT");
174         final ChartComposite frame = new ChartComposite(shell, SWT.NONE, chart,
175                 false);
176         frame.pack();
177         shell.open();
178         while (!shell.isDisposed()) {
179             if (!display.readAndDispatch())
180                 display.sleep();
181         }
182     }
183
184 }
185
186
Popular Tags