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.example;
24
25 import java.awt.Color;
26 import java.beans.PropertyVetoException;
27
28 import com.cosylab.util.CommonException;
29
30 import de.desy.acop.displayers.AcopLabel;
31 import de.desy.acop.transport.AccessMode;
32 import de.desy.acop.transport.ConnectionParameters;
33
34 public class LabelExample {
35
36 public static void main(String[] args) {
37
38 //How to connect label to a remote property?
39 //First we create an instance of the AcopLabel object.
40 AcopLabel label = new AcopLabel();
41 //We require ConnectionParameters which describe the remote property
42 ConnectionParameters parameters = new ConnectionParameters("TINE",
43 "context", "server", "device", "property", AccessMode.POLL, 1000);
44 //These parameters describe a remote property 'context/server/device/property'
45 //in the TINE control system. We will request a constant monitoring,
46 //therefore AccessMode.POLL was used. Polling rate is set to 1000 milliseconds,
47 //which means that value on the label will be updated every 1000 milliseconds.
48 //Parameters are then attached to the label. Connection is created automatically.
49 try {
50 label.setConnectionParameters(parameters);
51 } catch (CommonException e) {
52 e.printStackTrace();
53 } catch (PropertyVetoException e) {
54 e.printStackTrace();
55 }
56 //If no exception occurred, label should show the remote value.
57
58 //We are using the label to display a multi-channel array but we are only
59 //interested in the first 3 devices. We create a new ConnectionParameters object
60 //with specified propertySize.
61 ConnectionParameters p1 = new ConnectionParameters("TINE",
62 "context", "server", "device", "property", AccessMode.POLL, 1000, 3);
63 //And set them on the label.
64 try {
65 label.setConnectionParameters(p1);
66 } catch (CommonException e) {
67 e.printStackTrace();
68 } catch (PropertyVetoException e) {
69 e.printStackTrace();
70 }
71
72 //Other properties of the label can also simply be adjusted by calling the
73 //appropriate setter methods. These properties include background/foreground color,
74 //columns, title etc.:
75 label.setBackground(Color.RED);
76 label.setForeground(Color.GREEN);
77 label.setColumns(10);
78 }
79 }