1 /*
2 * Copyright (c) 2006 Stiftung Deutsches Elektronen-Synchroton,
3 * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
4 *
5 * THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS.
6 * WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
7 * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND
8 * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
9 * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
10 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
11 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE
12 * IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR
13 * CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
14 * NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
15 * DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
16 * OR MODIFICATIONS.
17 * THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION,
18 * USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS
19 * PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY
20 * AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM
21 */
22
23 package debugTest;
24
25 import java.awt.Color;
26 import java.awt.GridBagConstraints;
27 import java.awt.GridBagLayout;
28 import java.awt.Insets;
29
30 import javax.swing.JFrame;
31 import javax.swing.JPanel;
32
33 import de.desy.acop.displayers.AcopChart;
34 import de.desy.acop.displayers.tools.AcopChartConsumer;
35
36 public class AcopDisplayerTest extends Object {
37
38 static class Updater extends Thread {
39 AcopChartConsumer c;
40 double[] data= new double[100];
41 int interval;
42 double offset = 0;
43 public Updater(AcopChartConsumer c, int i, double off) {
44 this.c=c;
45 interval=i;
46 offset = off;
47 start();
48 }
49 /* (non-Javadoc)
50 * @see java.lang.Thread#run()
51 */
52 @Override
53 public synchronized void run() {
54 while(true) {
55 try {
56 for (int i = 0; i < data.length; i++) {
57 data[i]=offset + 100.0*Math.random();
58 }
59
60 c.updateValue(System.currentTimeMillis(),data);
61
62 sleep(interval);
63
64 } catch (Exception e) {
65 e.printStackTrace();
66 }
67 }
68 }
69 }
70
71
72 public AcopDisplayerTest() {
73 super();
74 // TODO Auto-generated constructor stub
75 }
76
77 /**
78 * @param args
79 */
80 public static void main(String[] args) {
81 try {
82
83 JFrame f= new JFrame();
84 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
85
86 JPanel p= new JPanel();
87 p.setLayout(new GridBagLayout());
88
89 AcopChart dis= new AcopChart();
90
91 // this setting does not seem to be working
92 dis.setYMin(-10.0);
93 dis.setYMax(110.0);
94
95 p.add(dis,new GridBagConstraints(0,0,1,1,1.0,1.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(4,4,4,4),0,0));
96
97 f.setContentPane(p);
98 f.setSize(500,300);
99 f.setVisible(true);
100
101 // I create first chart data series, everything ok
102 AcopChartConsumer c= dis.getConsumer("A",AcopChartConsumer.class);
103 c.setColor(Color.RED);
104 new Updater(c,1000,0);
105
106 // I create second chart data series, it is not working as expected
107 c= dis.getConsumer("B",AcopChartConsumer.class);
108 c.setColor(Color.BLUE);
109 new Updater(c,3000,20);
110
111 } catch (Exception e) {
112 e.printStackTrace();
113 }
114 }
115
116 }