1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package de.desy.acop.demo;
24
25 import java.awt.BorderLayout;
26 import java.awt.Color;
27
28 import javax.swing.JPanel;
29
30 import com.cosylab.gui.components.util.RunnerHelper;
31
32 import de.desy.acop.chart.AcopAdapter;
33 import de.desy.acop.chart.AcopDisplayMode;
34 import de.desy.acop.chart.AcopEvent;
35 import de.desy.acop.chart.AcopGraphStyleEnum;
36 import de.desy.acop.displayers.AcopChart;
37
38 public class AcopChartDemo3 extends JPanel {
39 private static final long serialVersionUID = 1L;
40 private AcopChart chart;
41
42 public AcopChartDemo3() {
43 super();
44 initialize();
45 }
46
47 private void initialize() {
48 setLayout(new BorderLayout());
49 add(getAcopChart(), BorderLayout.CENTER);
50 }
51
52 private AcopChart getAcopChart() {
53 if (chart == null) {
54 try {
55 chart = new AcopChart();
56
57
58 double[] yData = new double[1000];
59 double[] xData = new double[1000];
60 for (int i = 0; i < yData.length; i++) {
61 yData[i] = Math.random()*100;
62 xData[i] = System.currentTimeMillis()/1000 - 300 * (1. - (double)i/(yData.length-1) );
63 }
64
65
66 chart.setForeground(Color.BLUE);
67 chart.setDisplayMode(AcopDisplayMode.PolyLineDots.ordinal());
68 chart.draw(yData, xData);
69
70
71 chart.setXMin(System.currentTimeMillis()/1000 - 300 );
72 chart.setXMax(System.currentTimeMillis()/1000);
73 chart.setGraphStyle(AcopGraphStyleEnum.TimeLin.ordinal());
74
75
76 chart.setXGrid(true);
77 chart.setYGrid(true);
78 chart.setCursorMarkerMode(3);
79
80
81 chart.addAcopListener(new AcopAdapter(){
82 public void acopMouseMove(AcopEvent move) {
83 chart.setToolTipText(move.getMousePositionX() + " " + move.getMousePositionY());
84 }
85 });
86
87 } catch (java.lang.Throwable e) {
88 e.printStackTrace();
89 }
90 }
91 return chart;
92 }
93
94 public static void main(String[] args) {
95 RunnerHelper.runComponent(new AcopChartDemo3(), 600,600);
96 }
97
98 }