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 }