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.GridBagConstraints;
26 import java.awt.GridBagLayout;
27 import java.awt.Insets;
28 import java.awt.event.ActionEvent;
29 import java.awt.event.ActionListener;
30 import java.beans.Customizer;
31 import java.beans.PropertyChangeEvent;
32 import java.beans.PropertyChangeListener;
33
34 import javax.swing.JCheckBox;
35 import javax.swing.JPanel;
36
37 import de.desy.acop.displayers.AcopChartReorg;
38 import de.desy.acop.displayers.AcopTrendChart;
39 import de.desy.acop.displayers.tools.RecentTimespanSelector;
40
41
42
43
44
45
46
47
48
49 public class RecentTimespanCustomizer extends JPanel implements Customizer {
50
51 private static final long serialVersionUID = 1L;
52
53 private AcopTrendChart acopTrendChart;
54 private JCheckBox allDataBox;
55 private RecentTimespanSelector selector;
56
57
58
59
60
61 public RecentTimespanCustomizer() {
62 setLayout(new GridBagLayout());
63 add(getAllDataBox(), new GridBagConstraints(0,0,1,1,1,1,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(1,1,1,1),0,0));
64 selector = new RecentTimespanSelector();
65 add(selector, new GridBagConstraints(0,1,1,1,1,1,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(1,1,1,1),0,0));
66
67 }
68
69
70
71
72 public void setObject(Object bean) {
73 acopTrendChart = (AcopTrendChart) bean;
74 acopTrendChart.addPropertyChangeListener(new PropertyChangeListener() {
75 public void propertyChange(PropertyChangeEvent evt) {
76 String propertyName = evt.getPropertyName();
77 if (propertyName.equals(AcopChartReorg.X_RANGE_MIN) || propertyName.equals(AcopChartReorg.X_RANGE_MAX)) {
78 selector.setTimeSpan(acopTrendChart.getXRangeMax()-acopTrendChart.getXRangeMin());
79 }
80 }});
81 selector.addPropertyChangeListener(RecentTimespanSelector.TIME_SPAN, new PropertyChangeListener() {
82 public void propertyChange(PropertyChangeEvent evt) {
83 acopTrendChart.setTimeSpan((Double) evt.getNewValue());
84 }});
85 getAllDataBox().setSelected(acopTrendChart.isAutoScaleToLiveData());
86 selector.setEnabled(false);
87
88 }
89
90 private JCheckBox getAllDataBox() {
91 if (allDataBox == null) {
92 allDataBox = new JCheckBox("Autoscale to Live Data");
93 allDataBox.setToolTipText("Adjusts displayed time span to include new live data");
94 allDataBox.addActionListener(new ActionListener() {
95 public void actionPerformed(ActionEvent e) {
96 if (acopTrendChart != null) acopTrendChart.setAutoScaleToLiveData(allDataBox.isSelected());
97 selector.setEnabled(!allDataBox.isSelected());
98 }});
99 }
100
101 return allDataBox;
102 }
103
104 }