1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package de.desy.acop.displayers.chart;
24
25 import java.awt.Dimension;
26 import java.awt.GridBagConstraints;
27 import java.awt.GridBagLayout;
28 import java.awt.Insets;
29 import java.awt.event.ActionEvent;
30 import java.awt.event.ActionListener;
31 import java.awt.event.ItemEvent;
32 import java.awt.event.ItemListener;
33
34 import javax.swing.JCheckBox;
35 import javax.swing.JComboBox;
36 import javax.swing.JPanel;
37
38 import de.desy.acop.chart.AcopDisplayMode;
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 public class ChartOptionsPanel extends JPanel {
62
63 private static final long serialVersionUID = 1L;
64 private JCheckBox textCheckBox;
65 private JCheckBox chubbyLinesCheckBox;
66 private JComboBox lineDotsCombo;
67 private JCheckBox extraDigitCheckBox;
68 private JCheckBox showGridCheckBox;
69 private JCheckBox useBestScaleCheckBox;
70
71 private boolean textSelected;
72 private AcopDisplayMode lineStyle;
73 private boolean chubbyLines;
74 private boolean extraDigits;
75 private boolean showGrid;
76 private boolean useBestScale;
77
78 protected Dimension comboDim = new Dimension(110, 24);
79 protected Dimension dim = new Dimension(110,21);
80
81 public ChartOptionsPanel() {
82 super();
83 initialize();
84 }
85
86 private void initialize() {
87 setLayout(new GridBagLayout());
88
89 textCheckBox = new JCheckBox("Text");
90 textCheckBox.addItemListener(new ItemListener(){
91 public void itemStateChanged(ItemEvent e) {
92 setTextSelected(textCheckBox.isSelected());
93 }
94 });
95 textCheckBox.setMinimumSize(dim);
96 textCheckBox.setMaximumSize(dim);
97 textCheckBox.setPreferredSize(dim);
98 textCheckBox.setToolTipText("Enables Text Markers");
99
100 extraDigitCheckBox = new JCheckBox("Extra Digits");
101 extraDigitCheckBox.addActionListener(new ActionListener(){
102 public void actionPerformed(ActionEvent e) {
103 setExtraDigits(extraDigitCheckBox.isSelected());
104 }
105 });
106 extraDigitCheckBox.setMinimumSize(dim);
107 extraDigitCheckBox.setMaximumSize(dim);
108 extraDigitCheckBox.setPreferredSize(dim);
109 extraDigitCheckBox.setToolTipText("Shows Extra Digits Where Applicable");
110
111 chubbyLinesCheckBox = new JCheckBox("Chubby Lines");
112 chubbyLinesCheckBox.addItemListener(new ItemListener(){
113 public void itemStateChanged(ItemEvent e) {
114 setChubbyLines(chubbyLinesCheckBox.isSelected());
115 }
116 });
117 chubbyLinesCheckBox.setMinimumSize(dim);
118 chubbyLinesCheckBox.setMaximumSize(dim);
119 chubbyLinesCheckBox.setPreferredSize(dim);
120 chubbyLinesCheckBox.setToolTipText("Toggles Chubby/Normal lines");
121
122 showGridCheckBox = new JCheckBox("Show Grid");
123 showGridCheckBox.addItemListener(new ItemListener(){
124 public void itemStateChanged(ItemEvent e) {
125 setShowGrid(showGridCheckBox.isSelected());
126 }
127 });
128 showGridCheckBox.setMinimumSize(dim);
129 showGridCheckBox.setMaximumSize(dim);
130 showGridCheckBox.setPreferredSize(dim);
131 showGridCheckBox.setToolTipText("Toggles grid lines visibility");
132
133 useBestScaleCheckBox = new JCheckBox("Best Scale");
134 useBestScaleCheckBox.addItemListener(new ItemListener(){
135 public void itemStateChanged(ItemEvent e) {
136 setUseBestScale(useBestScaleCheckBox.isSelected());
137 }
138 });
139 useBestScaleCheckBox.setMinimumSize(dim);
140 useBestScaleCheckBox.setMaximumSize(dim);
141 useBestScaleCheckBox.setPreferredSize(dim);
142 useBestScaleCheckBox.setToolTipText("Toggles XY best scale enabled/disabled");
143
144 lineDotsCombo = new JComboBox(AcopDisplayMode.values());
145 lineDotsCombo.addItemListener(new ItemListener(){
146 public void itemStateChanged(ItemEvent e) {
147 if (e.getStateChange() == ItemEvent.SELECTED) {
148 setLineDisplayMode((AcopDisplayMode)lineDotsCombo.getSelectedItem());
149 }
150 }
151 });
152 lineDotsCombo.setMinimumSize(comboDim);
153 lineDotsCombo.setMaximumSize(comboDim);
154 lineDotsCombo.setPreferredSize(comboDim);
155 lineDotsCombo.setToolTipText("Sets Chart Style");
156
157 this.add(extraDigitCheckBox, new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(4,4,2,4),0,0));
158 this.add(textCheckBox, new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2,4,2,4),0,0));
159 this.add(chubbyLinesCheckBox, new GridBagConstraints(0,2,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2,4,2,4),0,0));
160 this.add(showGridCheckBox, new GridBagConstraints(0,3,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2,4,2,4),0,0));
161 this.add(useBestScaleCheckBox, new GridBagConstraints(0,4,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2,4,2,4),0,0));
162 this.add(lineDotsCombo, new GridBagConstraints(0,5,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2,4,4,4),0,0));
163 }
164
165
166
167
168
169 public boolean isChubbyLines() {
170 return chubbyLines;
171 }
172
173
174
175
176
177
178 public void setChubbyLines(boolean chubby) {
179 if (this.chubbyLines == chubby) return;
180 boolean oldChubbyLines = this.chubbyLines;
181 this.chubbyLines = chubby;
182 chubbyLinesCheckBox.setSelected(this.chubbyLines);
183 firePropertyChange("chubbyLines", oldChubbyLines, this.chubbyLines);
184
185 }
186
187
188
189
190
191
192 public void setExtraDigits(boolean extra) {
193 if (this.extraDigits == extra) return;
194 boolean oldExtraDigits = this.extraDigits;
195 this.extraDigits = extra;
196 extraDigitCheckBox.setSelected(this.extraDigits);
197 firePropertyChange("extraDigits", oldExtraDigits, this.extraDigits);
198
199 }
200
201
202
203
204
205 public boolean isExtraDigits() {
206 return extraDigits;
207 }
208
209
210
211
212
213
214 public AcopDisplayMode getLineDisplayMode() {
215 return lineStyle;
216 }
217
218
219
220
221
222
223 public void setLineDisplayMode(AcopDisplayMode style) {
224 if (lineStyle == style) return;
225 AcopDisplayMode oldStyle = this.lineStyle;
226 this.lineStyle = style;
227 lineDotsCombo.setSelectedItem(style);
228 firePropertyChange("lineDisplayMode", oldStyle, style);
229 }
230
231
232
233
234
235
236 public void setTextSelected(boolean visible) {
237 if (this.textSelected == visible) return;
238 boolean oldTextSelected = this.textSelected;
239 this.textSelected = visible;
240 textCheckBox.setSelected(this.textSelected);
241 firePropertyChange("textSelected", oldTextSelected, this.textSelected);
242 }
243
244
245
246
247
248
249 public boolean isTextSelected() {
250 return textSelected;
251 }
252
253
254
255
256
257
258 public boolean isUseBestScale() {
259 return useBestScale;
260 }
261
262
263
264
265
266
267 public void setUseBestScale(boolean selected) {
268 if (this.useBestScale == selected) return;
269 boolean oldUseBestScale = this.useBestScale;
270 this.useBestScale = selected;
271 useBestScaleCheckBox.setSelected(this.useBestScale);
272 firePropertyChange("useBestScale", oldUseBestScale, this.useBestScale);
273 }
274
275
276
277
278
279
280 public boolean isShowGrid() {
281 return showGrid;
282 }
283
284
285
286
287
288
289 public void setShowGrid(boolean selected) {
290 if (this.showGrid == selected) return;
291 boolean oldShowGrid = this.showGrid;
292 this.showGrid = selected;
293 showGridCheckBox.setSelected(this.showGrid);
294 firePropertyChange("showGrid", oldShowGrid, this.showGrid);
295 }
296
297
298
299
300
301 @Override
302 public void setEnabled(boolean enabled) {
303 super.setEnabled(enabled);
304 textCheckBox.setEnabled(enabled);
305 chubbyLinesCheckBox.setEnabled(enabled);
306 lineDotsCombo.setEnabled(enabled);
307 extraDigitCheckBox.setEnabled(enabled);
308 showGridCheckBox.setEnabled(enabled);
309 useBestScaleCheckBox.setEnabled(enabled);
310 }
311
312
313
314
315
316
317 public void setChubbyLinesView(boolean visible) {
318 if (chubbyLinesCheckBox.isVisible() == visible) return;
319 chubbyLinesCheckBox.setVisible(visible);
320 firePropertyChange("chubbyLinesView", !visible, visible);
321 }
322
323
324
325
326
327
328 public boolean isChubbyLinesView() {
329 return chubbyLinesCheckBox.isVisible();
330 }
331
332
333
334
335
336 public void setExtraDigitsView(boolean visible) {
337 if (extraDigitCheckBox.isVisible() == visible) return;
338 extraDigitCheckBox.setVisible(visible);
339 firePropertyChange("extraDigitsView", !visible, visible);
340 }
341
342
343
344
345
346
347 public boolean isExtraDigitsView() {
348 return extraDigitCheckBox.isVisible();
349 }
350
351
352
353
354
355 public void setShowGridView(boolean visible) {
356 if (showGridCheckBox.isVisible() == visible) return;
357 showGridCheckBox.setVisible(visible);
358 firePropertyChange("showGridView", !visible, visible);
359 }
360
361
362
363
364
365
366 public boolean isShowGridView() {
367 return showGridCheckBox.isVisible();
368 }
369
370
371
372
373
374 public void setTextView(boolean visible) {
375 if (textCheckBox.isVisible() == visible) return;
376 textCheckBox.setVisible(visible);
377 firePropertyChange("textView", !visible, visible);
378 }
379
380
381
382
383
384
385 public boolean isTextView() {
386 return textCheckBox.isVisible();
387 }
388
389
390
391
392
393 public void setBestScaleView(boolean visible) {
394 if (useBestScaleCheckBox.isVisible() == visible) return;
395 useBestScaleCheckBox.setVisible(visible);
396 firePropertyChange("bestScaleView", !visible, visible);
397 }
398
399
400
401
402
403
404 public void setLineDisplayModeView(boolean visible) {
405 if (lineDotsCombo.isVisible() == visible) return;
406 lineDotsCombo.setVisible(visible);
407 firePropertyChange("lineDisplayModeView",!visible, visible);
408 }
409
410
411
412
413
414
415 public boolean isLineDisplayModeView() {
416 return lineDotsCombo.isVisible();
417 }
418
419
420
421
422
423
424 public boolean isBestScaleView() {
425 return useBestScaleCheckBox.isVisible();
426 }
427
428 }