00001 package org.swtchart.examples;
00002
00003 import org.eclipse.swt.SWT;
00004 import org.eclipse.swt.layout.FillLayout;
00005 import org.eclipse.swt.widgets.Composite;
00006 import org.eclipse.swt.widgets.Display;
00007 import org.eclipse.swt.widgets.Shell;
00008 import org.swtchart.Chart;
00009 import org.swtchart.ILineSeries;
00010 import org.swtchart.ILineSeries.PlotSymbolType;
00011 import org.swtchart.ISeries.SeriesType;
00012
00016 public class LargeSeriesExample {
00017
00024 public static void main(String[] args) {
00025 Display display = new Display();
00026 Shell shell = new Shell(display);
00027 shell.setText("Large Series");
00028 shell.setSize(500, 400);
00029 shell.setLayout(new FillLayout());
00030
00031 createChart(shell);
00032
00033 shell.open();
00034 while (!shell.isDisposed()) {
00035 if (!display.readAndDispatch()) {
00036 display.sleep();
00037 }
00038 }
00039 display.dispose();
00040 }
00041
00049 static public Chart createChart(Composite parent) {
00050
00051
00052 Chart chart = new Chart(parent, SWT.NONE);
00053
00054
00055 chart.getTitle().setText("Large Series");
00056 chart.getAxisSet().getXAxis(0).getTitle().setText("Data Points");
00057 chart.getAxisSet().getYAxis(0).getTitle().setText("Amplitude");
00058
00059
00060 ILineSeries lineSeries = (ILineSeries) chart.getSeriesSet()
00061 .createSeries(SeriesType.LINE, "line series");
00062 lineSeries.setYSeries(getSeries());
00063 lineSeries.setSymbolType(PlotSymbolType.NONE);
00064
00065
00066 chart.getAxisSet().adjustRange();
00067
00068 return chart;
00069 }
00070
00071 private static double[] getSeries() {
00072 double[] series = new double[1048576];
00073 for (int i = 0; i < series.length; i++) {
00074 series[i] = Math.sin(i * 33 * Math.PI / series.length)
00075 + Math.sin(i * 15 * Math.PI / series.length);
00076 }
00077 return series;
00078 }
00079 }