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 de.desy.acop.demo;
24  
25  import java.awt.BorderLayout;
26  import javax.swing.JPanel;
27  import javax.swing.JFrame;
28  import de.desy.acop.displayers.AcopChart;
29  import de.desy.acop.displayers.tools.AcopGraphParameters;
30  import de.desy.acop.transport.ConnectionParameters;
31  import de.desy.acop.transport.AccessMode;
32  
33  /**
34   * Acop Chart simple demo.
35   * @author Igor Kriznar (igor.kriznarATcosylab.com)
36   *
37   */
38  public class ChartPersistenceDemo extends JFrame {
39  
40  	private JPanel jContentPane = null;
41  	private AcopChart acopChart = null;
42  	
43  	/**
44  	 * This method initializes acopChart	
45  	 * 	
46  	 * @return de.desy.acop.displayers.AcopChart	
47  	 */
48  	private AcopChart getAcopChart() {
49  		if (acopChart == null) {
50  			try {
51  				acopChart = new AcopChart();
52  
53  				acopChart.setXMax(11);
54  				acopChart.setXMin(0);
55  				
56  				new Thread(new Runnable(){
57  					public void run() {
58  						double[] x = new double[]{1,2,3,4,5,6,7,8,9,10};
59  						double[] y = new double[]{5,6,2,6,2,7,8,2,6,2};
60  						acopChart.draw(y,x);
61  						while (true) {
62  							try {
63  								Thread.sleep(1000);
64  								} catch (Exception e) {
65  									e.printStackTrace();
66  								}
67  							for (int i = 0; i < y.length; i++) {
68  								y[i] = Math.random()*10;
69  							}
70  							acopChart.draw(y, x);
71  							acopChart.clearScreen(-1, 3);
72  							
73  						}
74  					}
75  				}).start();
76  			} catch (java.lang.Throwable e) {
77  				e.printStackTrace();
78  			}
79  		}
80  		return acopChart;
81  	}
82  
83  	/**
84  	 * @param args
85  	 */
86  	public static void main(String[] args) {
87  		ChartPersistenceDemo d= new ChartPersistenceDemo();
88  		d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
89  		d.setVisible(true);
90  	}
91  
92  	/**
93  	 * This is the default constructor
94  	 */
95  	public ChartPersistenceDemo() {
96  		super();
97  		initialize();
98  	}
99  
100 	/**
101 	 * This method initializes this
102 	 * 
103 	 * @return void
104 	 */
105 	private void initialize() {
106 		this.setSize(300, 200);
107 		this.setContentPane(getJContentPane());
108 		this.setTitle("JFrame");
109 	}
110 
111 	/**
112 	 * This method initializes jContentPane
113 	 * 
114 	 * @return javax.swing.JPanel
115 	 */
116 	private JPanel getJContentPane() {
117 		if (jContentPane == null) {
118 			jContentPane = new JPanel();
119 			jContentPane.setLayout(new BorderLayout());
120 			jContentPane.add(getAcopChart(), java.awt.BorderLayout.CENTER);  // Generated
121 		}
122 		return jContentPane;
123 	}
124 
125 }