/*
* (C) Copyright 2000-2010, by Object Refinery Limited.
*/
package eas.plugins.standard.visualization.chartPlugin;
import java.awt.Color;
import java.awt.RadialGradientPaint;
import java.awt.MultipleGradientPaint.CycleMethod;
import java.awt.geom.Point2D;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
/**
* A simple demo showing a pie chart using RadialGradientPaint.
*/
public class PieChartDemoWithRadialGradientPaint extends ApplicationFrame {
private static final long serialVersionUID = 577818110288812733L;
public PieChartDemoWithRadialGradientPaint(String title) {
super(title);
setContentPane(createDemoPanel());
}
/**
* Creates a panel for the demo (used by SuperDemo.java).
*
* @return A panel.
*/
public static JPanel createDemoPanel() {
JFreeChart chart = createChart(createDataset());
ChartPanel panel = new ChartPanel(chart);
panel.setMouseWheelEnabled(true);
return panel;
}
private static PieDataset createDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("United States", 607.0);
dataset.setValue("People's Republic of China", 84.9);
dataset.setValue("France", 65.7);
dataset.setValue("United Kingdom", 65.3);
dataset.setValue("Russia", 58.6);
dataset.setValue("Germany", 46.8);
dataset.setValue("Japan", 46.3);
dataset.setValue("Italy", 40.6);
dataset.setValue("Saudi Arabia", 38.2);
dataset.setValue("India", 30.0);
return dataset;
}
private static JFreeChart createChart(PieDataset dataset) {
JFreeChart chart = ChartFactory.createPieChart(
"Military Spending 2008 - Top 10 Countries",
dataset, false, // legend?
true, // tooltips?
false // URLs?
);
chart.addSubtitle(new TextTitle("http://en.wikipedia.org/wiki/List_of_countries_by_military_expenditures"));
PiePlot plot = (PiePlot) chart.getPlot();
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} ({2})"));
plot.setBackgroundPaint(Color.WHITE);
plot.setOutlinePaint(null);
RadialGradientPaint p = new RadialGradientPaint(
new Point2D.Float(0, 0),
100,
new float[] {0.1f, 0.4f, 1},
new Color[] {Color.BLUE, Color.red, Color.yellow},
CycleMethod.REFLECT);
plot.setSectionPaint("United States", p);
return chart;
}
public static void main(String[] args) {
// > http://www.object-refinery.com/jfreechart/guide.html
PieChartDemoWithRadialGradientPaint demo = new PieChartDemoWithRadialGradientPaint("PieChartWithRadialGradientPaintDemo.java");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}