1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.cosylab.gui.components;
21
22 import java.awt.BorderLayout;
23 import java.awt.Color;
24 import java.awt.event.ContainerEvent;
25 import java.awt.event.ContainerListener;
26 import java.awt.event.WindowAdapter;
27 import java.awt.event.WindowEvent;
28
29 import javax.swing.JComponent;
30 import javax.swing.JFrame;
31
32 import com.cosylab.application.state.State;
33 import com.cosylab.gui.components.ledder.BitDescriptor;
34 import com.cosylab.gui.components.ledder.DefaultBitDescriptor;
35
36
37
38
39
40
41
42
43
44
45 public class LabelledLedder extends AbstractDisplayerPanel
46 {
47
48
49 private static final long serialVersionUID = 1L;
50
51
52
53
54
55
56 public static void main(String[] args)
57 {
58 LabelledLedder ll = new LabelledLedder("Labelled Ledder") ;
59 DefaultBitDescriptor lm = new DefaultBitDescriptor();
60 ll.setBitDescriptor(lm);
61
62 int ledCount = 7;
63
64 String[] descText =
65 {
66 "1On",
67 "2Sum Failure",
68 "3DC Overcurrent",
69 "4Remote",
70 "5Phase Failure",
71 "6External Interlock",
72 "7Not Ready"};
73
74 long c = 0;
75 long m = 1;
76
77 for (int i = 0; i < ledCount; i++) {
78 Color con = Color.GREEN;
79 Color cof = Color.RED;
80 String cde;
81
82 if (i < descText.length) {
83 cde = descText[i % descText.length];
84 } else {
85 int nChars = (int) (Math.random() * 12) + 2;
86 cde = "";
87 cde += (char) (int) (Math.random() * 25 + 65);
88 for (int j = 0; j < nChars; j++) {
89 cde += (char) (int) (Math.random() * 25 + 97);
90 }
91 }
92 c += m;
93 m *= 2;
94
95 lm.add(cde, con, cof);
96 }
97
98 ll.setMask(c);
99
100
101
102 JFrame frame = new JFrame("Ledder Testing Applet");
103 frame.getContentPane().setLayout(new BorderLayout(10, 10));
104 frame.getContentPane().add(ll);
105 frame.setSize(500, 200);
106 frame.addWindowListener(new WindowAdapter() {
107 public void windowClosing(WindowEvent e)
108 {
109 System.exit(0);
110 }
111 });
112
113 ll.setEditable(true);
114 frame.setVisible(true);
115
116
117
118
119
120
121
122
123
124
125
126
127 }
128
129 private Ledder ledder;
130
131
132
133
134 public LabelledLedder()
135 {
136 this(null);
137 }
138
139
140
141
142
143
144 public LabelledLedder(String title)
145 {
146
147 super();
148
149 setTitle(title);
150
151 setTitleVisible(true);
152 setLayoutOrientation(DYNAMIC_LAYOUT);
153 setResizable(true);
154 setEnhanced(true);
155 }
156
157
158
159
160
161
162 public long getBits()
163 {
164 return getLedder().getBits();
165 }
166
167
168
169
170
171
172
173 protected Ledder getLedder()
174 {
175 if (ledder == null) {
176 ledder = new Ledder();
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191 ledder.addContainerListener(new ContainerListener() {
192 public void componentRemoved(ContainerEvent e) {
193 e.getChild().removeMouseListener(getPopupManager().getMouseHook());
194 }
195 public void componentAdded(ContainerEvent e) {
196 e.getChild().addMouseListener(getPopupManager().getMouseHook());
197 }
198 });
199
200 }
201
202 return ledder;
203 }
204
205
206
207
208
209
210 public long getMask()
211 {
212 return getLedder().getMask();
213 }
214
215
216
217
218
219
220 public BitDescriptor getBitDescriptor()
221 {
222 return getLedder().getModel();
223 }
224
225
226
227
228
229
230
231 public State getState()
232 {
233 State state = super.getState();
234
235 return state;
236 }
237
238
239
240
241
242
243
244 protected JComponent getValueComponent()
245 {
246 return getLedder();
247 }
248
249
250
251
252
253
254 protected void internalSetResizable()
255 {
256 super.internalSetResizable();
257 getLedder().revalidate();
258 }
259
260
261
262
263
264
265 public boolean isEditable()
266 {
267 return getLedder().isEditable();
268 }
269
270 public void setEditable(boolean editable){
271 getLedder().setEditable(editable);
272 }
273
274
275
276
277
278
279 public boolean isReverseLedsOrder() {
280 return getLedder().isReverseLedsOrder();
281 }
282
283
284
285
286
287
288
289
290
291 public void setBits(long value)
292 {
293 getLedder().setBits(value);
294 }
295
296
297
298
299
300
301 public void setMask(long value)
302 {
303 getLedder().setMask(value);
304 }
305
306
307
308
309
310
311 public void setBitDescriptor(BitDescriptor model)
312 {
313 getLedder().setModel(model);
314 }
315
316
317
318
319
320
321
322 public void setReverseLedsOrder(boolean b) {
323 getLedder().setReverseLedsOrder(b);
324 }
325
326
327
328
329
330
331 public void setState(State state)
332 {
333 super.setState(state);
334
335 }
336
337
338 public void setEnabled(boolean enabled){
339 getTitleComponent().setEnabled(enabled);
340 }
341
342
343 }
344
345