这段时间一直比较忙,答应帮朋友完善的一个RCP毕业设计,直到这两天才有时间动手。这个RCP有生成报表的需求,首先想到的是JFreeChart和BIRT的Chart引擎。因为对JFreeChart比较熟悉,就选择用它做报表。
ChartView.java创建一个View类,这里JFreeChart报表参考了SWTTimeSeriesDemo,当然之前得首先加入jfreechart-1.0.5.jar、jfreechart-1.0.5-swt.jar和jcommon1.0.9.jar。
/**
* @author zyh2k
*
*/
public class ChartView extends ViewPart {
private ChartComposite frame;
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
@Override
public void createPartControl(Composite parent) {
// TODO Auto-generated method stub
final JFreeChart chart = createChart(createDataset());
/*final Display display = new Display();
Shell shell = new Shell(display);
shell.setSize(600, 300);
shell.setLayout(new FillLayout());
shell.setText("Time series demo for jfreechart running with SWT");*/
frame = new ChartComposite(parent, SWT.NONE, chart, true);
FillLayout fillLayout = new FillLayout();
fillLayout.type = SWT.VERTICAL;
frame.setLayout(fillLayout);
frame.setSize(600, 300);
frame.setDisplayToolTips(true);
frame.setHorizontalAxisTrace(false);
frame.setVerticalAxisTrace(false);
/*shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}*/
}
/**
* 用户退出时,将面板隐藏
*/
* @author zyh2k
*
*/
public class ChartView extends ViewPart {
private ChartComposite frame;
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
@Override
public void createPartControl(Composite parent) {
// TODO Auto-generated method stub
final JFreeChart chart = createChart(createDataset());
/*final Display display = new Display();
Shell shell = new Shell(display);
shell.setSize(600, 300);
shell.setLayout(new FillLayout());
shell.setText("Time series demo for jfreechart running with SWT");*/
frame = new ChartComposite(parent, SWT.NONE, chart, true);
FillLayout fillLayout = new FillLayout();
fillLayout.type = SWT.VERTICAL;
frame.setLayout(fillLayout);
frame.setSize(600, 300);
frame.setDisplayToolTips(true);
frame.setHorizontalAxisTrace(false);
frame.setVerticalAxisTrace(false);
/*shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}*/
}
/**
* 用户退出时,将面板隐藏
*/