package org.swtchart.examples.ext;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.part.ViewPart;
import org.swtchart.IBarSeries;
import org.swtchart.ILineSeries;
import org.swtchart.ISeries.SeriesType;
import org.swtchart.ext.InteractiveChart;
/**
* An example view to show InteractiveChart.
*/
public class InteractiveChartExample extends ViewPart {
private static final String[] categorySeries = { "Mon", "Tue", "Wed",
"Thu", "Fri" };
private static final double[] yLineSeries1 = { 4.6, 5.4, 6.9, 5.6, 7.1 };
private static final double[] yLineSeries2 = { 6.0, 5.1, 4.9, 5.3, 4.2 };
private static final double[] yBarSeries1 = { 1.1, 2.9, 3.3, 4.4, 3.5 };
private static final double[] yBarSeries2 = { 4.3, 3.4, 2.8, 2.1, 1.9 };
/** the chart */
private InteractiveChart chart;
/*
* @see WorkbenchPart#createPartControl(Composite)
*/
@Override
public void createPartControl(Composite parent) {
parent.setLayout(new FillLayout());
// create an interactive chart
chart = new InteractiveChart(parent, SWT.NONE);
// set title
chart.getTitle().setText("Sample Interactive Chart");
// set category series
chart.getAxisSet().getXAxis(0).enableCategory(true);
chart.getAxisSet().getXAxis(0).setCategorySeries(categorySeries);
// create line series 1
ILineSeries lineSeries1 = (ILineSeries) chart.getSeriesSet()
.createSeries(SeriesType.LINE, "line series 1");
lineSeries1.setYSeries(yLineSeries1);
// create line series 2
ILineSeries lineSeries2 = (ILineSeries) chart.getSeriesSet()
.createSeries(SeriesType.LINE, "line series 2");
lineSeries2.setYSeries(yLineSeries2);
lineSeries2.setLineColor(Display.getDefault().getSystemColor(SWT.COLOR_RED));
// create bar series 1
IBarSeries barSeries1 = (IBarSeries) chart.getSeriesSet().createSeries(
SeriesType.BAR, "bar series 1");
barSeries1.setYSeries(yBarSeries1);
// create bar series 2
IBarSeries barSeries2 = (IBarSeries) chart.getSeriesSet().createSeries(
SeriesType.BAR, "bar series 2");
barSeries2.setYSeries(yBarSeries2);
barSeries2.setBarColor(Display.getDefault().getSystemColor(SWT.COLOR_GREEN));
// adjust the axis range
chart.getAxisSet().adjustRange();
chart.getPlotArea().addMouseListener(new MouseListener() {
private boolean toolTipEnable = true;
@Override
public void mouseUp(MouseEvent e) {}
@Override
public void mouseDown(MouseEvent e) {}
@Override
public void mouseDoubleClick(MouseEvent e) {
toolTipEnable = chart.enableDataPilot(toolTipEnable);
}
});
}
/*
* @see WorkbenchPart#setFocus()
*/
@Override
public void setFocus() {
chart.getPlotArea().setFocus();
}
/*
* @see WorkbenchPart#dispose()
*/
@Override
public void dispose() {
super.dispose();
chart.dispose();
}
}