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.displayers.tools;
24
25 import java.awt.Color;
26
27 import com.cosylab.gui.adapters.Converter;
28
29 import de.desy.acop.chart.Acop;
30 import de.desy.acop.chart.AcopDisplayMode;
31 import de.desy.acop.chart.AcopDrawStyleEnum;
32 import de.desy.acop.transport.ConnectionParameters;
33
34 /**
35 * <code>AcopGraphParameters</code> is an extension of
36 * <code>AcopDisplayerParameters</code> which also hold data about
37 * visualization of a single graph in a chart. This parameters are intended
38 * for use with <code>AcopChart</code> and only hold information that can be
39 * read by the AcopChart object.
40 *
41 * @author <a href="mailto:jaka.bobnar@cosylab.com">Jaka Bobnar</a>
42 * @version $Id: Templates.xml,v 1.10 2004/01/13 16:17:13 jbobnar Exp $
43 *
44 */
45 public class AcopGraphParameters extends AcopDisplayerParameters {
46
47 private static final long serialVersionUID = -7187249526651411944L;
48
49 /**
50 * Constructs a new AcopGraphParameters object.
51 *
52 */
53 public AcopGraphParameters() {
54 this((ConnectionParameters)null, null, -1, -1, -1, 1, false, 100, null);
55 }
56
57 /**
58 * Constructs a new AcopGraphParameters object with the given connection point.
59 *
60 * @param param remote connection point
61 */
62 public AcopGraphParameters(ConnectionParameters param) {
63 this (param, null, -1, -1, -1,1, false, 100, null);
64 }
65
66 /**
67 * Constructs a new AcopGraphParameters object with the specified parameters values
68 *
69 * @param parameters remote connection point
70 * @param color color of the graph
71 * @param fft acop fft mode
72 * @param drawStyle style of the graph
73 * @param mode acop graph mode
74 * @param width the width of the line
75 * @param trend a flag indicating if this is a trend graph
76 * @param trendLength number of trend points if this is a trend
77 * @see Acop
78 */
79 public AcopGraphParameters(ConnectionParameters parameters, Color color, int fft, int drawStyle, int mode, int width, boolean trend, int trendLength) {
80 this(parameters,-1,Double.NaN,Double.NaN,null,null,color, fft, drawStyle, mode, width, trend, trendLength, null);
81 }
82
83 /**
84 * Constructs a new AcopGraphParameters object with the specified parameters values
85 *
86 * @param parameters remote connection point
87 * @param color color of the graph
88 * @param fft acop fft mode
89 * @param drawStyle style of the graph
90 * @param mode acop graph mode
91 * @param width the width of the line
92 * @param trend a flag indicating if this is a trend graph
93 * @param trendLength number of trend points if this is a trend
94 * @param converter converter associated with this connection point
95 * @see Acop
96 */
97 public AcopGraphParameters(ConnectionParameters parameters, Color color, int fft, int drawStyle, int mode, int width, boolean trend, int trendLength, Converter converter) {
98 this(parameters,-1,Double.NaN,Double.NaN,null,null,color, fft, drawStyle, mode, width, trend, trendLength, converter);
99 }
100
101 /**
102 * Constructs a new AcopGraphParameters object with the specified parameters values
103 *
104 * @param parameters remote connection point
105 * @param index index of the value in the array if this is a spectrum
106 * @param min minimum value
107 * @param max maximum value
108 * @param units physical units
109 * @param format C-style format
110 * @param color color of the graph
111 * @param fft acop fft mode
112 * @param drawStyle style of the graph
113 * @param mode acop graph mode
114 * @param width the width of the line
115 * @param trend a flag indicating if this is a trend graph
116 * @param trendLength number of trend points if this is a trend
117 * @param converter converter associated with this connection point
118 * @see Acop
119 *
120 */
121 protected AcopGraphParameters(ConnectionParameters parameters, int index, double min, double max, String units, String format, Color color, int fft, int drawStyle, int mode, int width, boolean trend, int trendLength, Converter converter) {
122 super(parameters,index,min,max,units,format, converter);
123 values.put("color",color);
124 values.put("fft",fft);
125 values.put("drawStyle",drawStyle);
126 values.put("mode",mode);
127 values.put("width",width);
128 values.put("trend",trend);
129 values.put("trendLength",trendLength);
130 }
131
132 /**
133 * Constructs new AcopGraphParameters using the supplied parameters.
134 *
135 * @param adp
136 */
137 public AcopGraphParameters (AcopDisplayerParameters adp) {
138 this(adp, null, -1, -1, -1, 1, false, 100, null);
139 }
140
141 /**
142 * Constructs a new AcopGraphParameters object with the specified parameters values
143 *
144 * @param adp additional displayer parameters
145 * @param color color of the graph
146 * @param fft acop fft mode
147 * @param drawStyle style of the graph
148 * @param mode acop graph mode
149 * @param width the width of the line
150 * @param trend a flag indicating if this is a trend graph
151 * @param trendLength number of trend points if this is a trend
152 * @see Acop
153 */
154 public AcopGraphParameters(AcopDisplayerParameters adp, Color color, int fft, int drawStyle, int mode, int width, boolean trend, int trendLength) {
155 this(adp.getConnectionParameters(), adp.getArrayIndex(), adp.getMinimum(), adp.getMaximum(), adp.getUnits(), adp.getFormat(), color, fft, drawStyle, mode, width, trend, trendLength, adp.getConverter());
156 }
157
158 /**
159 * Constructs a new AcopGraphParameters object with the specified parameters values
160 *
161 * @param adp additional displayer parameters
162 * @param color color of the graph
163 * @param fft acop fft mode
164 * @param drawStyle style of the graph
165 * @param mode acop graph mode
166 * @param width the width of the line
167 * @param trend a flag indicating if this is a trend graph
168 * @param trendLength number of trend points if this is a trend
169 * @param converter converter associated with this connection point
170 * @see Acop
171 */
172 public AcopGraphParameters(AcopDisplayerParameters adp, Color color, int fft, int drawStyle, int mode, int width, boolean trend, int trendLength, Converter converter) {
173 this(adp.getConnectionParameters(), adp.getArrayIndex(), adp.getMinimum(), adp.getMaximum(), adp.getUnits(), adp.getFormat(), color, fft, drawStyle, mode, width, trend, trendLength, converter);
174 }
175
176 /**
177 * Sets the color of the graph.
178 *
179 * @return the color
180 * @see Acop#setForeground(Color)
181 */
182 public Color getColor() {
183 return (Color)values.get("color");
184 }
185
186 /**
187 * Returns the acop fft mode.
188 *
189 * @return the fFT
190 * @see Acop#setFFT(int)
191 */
192 public int getFFT() {
193 return getInt("fft");
194 }
195
196 /**
197 * Returns the acop draw style.
198 *
199 * @return the graphStyle
200 * @see AcopDrawStyleEnum
201 * @see Acop#setDrawStyle(int)
202 */
203 public int getDrawStyle() {
204 return getInt("drawStyle");
205 }
206
207 /**
208 * Returns true if this is shown as a trend graph.
209 *
210 * @return is trend
211 */
212 public boolean isTrend() {
213 return getBool("trend");
214 }
215
216 /**
217 * Returns the number of points if this is a trend.
218 *
219 * @return the trend length
220 */
221 public int getTrendLength() {
222 return getInt("trendLength");
223 }
224
225 /**
226 * Returns the acop display mode.
227 *
228 * @return the mode
229 * @see AcopDisplayMode
230 * @see Acop#setDisplayMode(int)
231 */
232 public int getMode() {
233 return getInt("mode");
234 }
235
236 /**
237 * Returns the width of the graph line.
238 *
239 * @return the width
240 * @see Acop#setDrawWidth(int)
241 */
242 public int getWidth() {
243 return getInt("width");
244 }
245 }
246
247
248 /* __oOo__ */