SWTでJFreeChart

純正/公式に拘るならBIRTなのでしょう.
けれども,ちょっとグラフを出すだけのためにレポーティングウイザードが山盛りのBIRTを組込むのは,ちょいと躊躇うワケです.無駄なプラグインが増えれば,起動も動作も遅くなります.


で,JFreeChartです.
SWT-AWTブリッジを使うというのが古典的な解法なのですが.
最近のJFreeChartでは,experimentalながら,もうちょっと手を抜けるようなwrapperが提供されています.

案外情報が(特に日本語のが)少ないのは,experimentalなのを避けたい気持ちからなのか,海外情報の孫引きが多いからなのか.;-(

例えば,Ganttなら,こんな感じ.

import org.jfree.experimental.chart.swt.ChartComposite;

public class SwitchTaskView extends ViewPart {
	Task[] tasks;
	Date lastDate;
	
	public SwitchTaskView() {
		lastDate = Calendar.getInstance().getTime();
	}
	
	public void createPartControl(Composite parent) {
		JFreeChart chart;
		ChartComposite composite;
		chart = createChart();
		composite = new ChartComposite(parent, SWT.NONE, chart, true);
		composite.setToolTipText("Task status");
	}

	private TaskSeries createTaskSeries() {
		TaskSeries series = new TaskSeries("Running");
		tasks = new Task[10];
		for (int i = 0; i < tasks.length; i++) {
			tasks[i] = new Task(String.valueOf(i + 1), lastDate, lastDate);
			series.add(tasks[i]);
		}
		return series;
	}
		
	private JFreeChart createChart() {
		JFreeChart chart;
		TaskSeriesCollection collection = new TaskSeriesCollection();
		TaskSeries series = createTaskSeries();
		collection.add(series);
		
		chart = ChartFactory.createGanttChart("Task status", "TaskID", "Timeline", collection, true, true, false);

		return chart;
	}

何を作ろうとしているのか,バレバレですな.;-)