~tapaal-contributor/tapaal/display-shared-places-transitions-1879126

« back to all changes in this revision

Viewing changes to src/pipe/gui/widgets/RunningVerificationDialog.java

  • Committer: Jiri Srba
  • Date: 2020-04-28 19:15:28 UTC
  • mfrom: (998.2.376 testbranch)
  • Revision ID: srba@cs.aau.dk-20200428191528-3xxjqa1r4jcob5ur
merged in lp:~yrke/tapaal/testbranch doing majour refactoring of the GUI

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
 * 
3
 
 */
4
1
package pipe.gui.widgets;
5
2
 
6
3
import java.awt.Container;
7
4
import java.awt.GridBagConstraints;
8
5
import java.awt.GridBagLayout;
9
 
import java.awt.GridLayout;
10
6
import java.awt.Insets;
11
 
import java.awt.Label;
12
7
import java.awt.event.ActionEvent;
13
 
import java.awt.event.ActionListener;
14
8
import java.awt.event.WindowAdapter;
15
9
import java.awt.event.WindowEvent;
16
 
import java.beans.PropertyChangeEvent;
17
 
import java.beans.PropertyChangeListener;
18
10
 
19
11
import javax.swing.AbstractAction;
20
12
import javax.swing.JButton;
21
13
import javax.swing.JDialog;
22
14
import javax.swing.JFrame;
23
15
import javax.swing.JLabel;
24
 
import javax.swing.JPanel;
25
16
import javax.swing.SwingWorker;
26
17
import javax.swing.Timer;
27
18
import javax.swing.SwingWorker.StateValue;
30
21
 
31
22
public class RunningVerificationDialog extends JDialog {
32
23
        private static final long serialVersionUID = -1943743974346875737L;
 
24
        private final SwingWorker<?, ?> worker;
33
25
        private JButton okButton;
34
26
        private long startTimeMs = 0;
35
27
        JLabel timerLabel;
62
54
        
63
55
        private Timer memoryTimer;
64
56
        
65
 
        public RunningVerificationDialog(JFrame owner) {
66
 
                super(owner, "Verification in Progress", true);         
67
 
                initComponents();                       
 
57
        public RunningVerificationDialog(JFrame owner, final SwingWorker<?, ?> worker) {
 
58
                super(owner, "Verification in Progress", true);
 
59
                this.worker = worker;
 
60
                initComponents();
 
61
                initActions();
68
62
                pack();
69
63
        }
70
 
        
 
64
 
 
65
        private void initActions() {
 
66
                okButton.addActionListener(evt -> {
 
67
                        closeWindow();
 
68
                        worker.cancel(true);
 
69
                });
 
70
 
 
71
                addWindowListener(new WindowAdapter() {
 
72
                        @Override
 
73
                        public void windowClosing(WindowEvent e) {
 
74
                                closeWindow();
 
75
                                worker.cancel(true);
 
76
                        }
 
77
                });
 
78
 
 
79
                worker.addPropertyChangeListener(event -> {
 
80
                        if (event.getPropertyName().equals("state")) {
 
81
                                StateValue stateValue = (StateValue) event.getNewValue();
 
82
                                if (stateValue.equals(StateValue.DONE)) {
 
83
                                        closeWindow();
 
84
                                }
 
85
                        }
 
86
                });
 
87
        }
 
88
 
 
89
        private void closeWindow() {
 
90
                setVisible(false);
 
91
                timer.stop();
 
92
                stopMemoryTimer();
 
93
                dispose();
 
94
        }
 
95
 
71
96
        public void initComponents() {          
72
97
                setLocationRelativeTo(null);
73
98
                setLayout(new GridBagLayout());
74
99
                
75
100
                timer = new Timer(1000, new AbstractAction() {
76
 
                        private static final long serialVersionUID = 1327695063762640628L;
77
 
 
78
101
                        public void actionPerformed(ActionEvent e) {
79
 
                                timerLabel.setText((System.currentTimeMillis() - startTimeMs)
80
 
                                                /1000 + " s");
81
 
                                usageLabel.setText(peakMemory >= 0? peakMemory + " MB" : "N/A");
 
102
                                timerLabel.setText((System.currentTimeMillis() - startTimeMs) / 1000 + " s");
 
103
                                usageLabel.setText(peakMemory >= 0 ? peakMemory + " MB" : "N/A");
82
104
                        }
83
105
                });     
84
106
                
85
107
                memoryTimer = new Timer(50, new AbstractAction() {
86
 
                        private static final long serialVersionUID = 1327695063762640628L;
87
108
 
88
109
                        public void actionPerformed(ActionEvent e) {
89
110
                                if(MemoryMonitor.isAttached()){
180
201
                memoryTimer.start();
181
202
        }
182
203
 
183
 
        public void setupListeners(final SwingWorker<?, ?> worker) {
184
 
                okButton.addActionListener(new ActionListener() {
185
 
                        public void actionPerformed(ActionEvent evt) {
186
 
                                worker.cancel(true);
187
 
                        }
188
 
                });
189
 
 
190
 
                addWindowListener(new WindowAdapter() {
191
 
                        @Override
192
 
                        public void windowClosing(WindowEvent e) {
193
 
                                worker.cancel(true);
194
 
                        }
195
 
                });
196
 
                
197
 
                worker.addPropertyChangeListener(new PropertyChangeListener() {
198
 
                        public void propertyChange(PropertyChangeEvent event) {
199
 
                                if (event.getPropertyName().equals("state")) {
200
 
                                        StateValue stateValue = (StateValue) event.getNewValue();
201
 
                                        if (stateValue.equals(StateValue.DONE)) {                                                               
202
 
                                                setVisible(false);
203
 
                                                timer.stop();
204
 
                                                stopMemoryTimer();
205
 
                                                dispose();                                              
206
 
                                        }
207
 
                                }
208
 
                        }
209
 
 
210
 
                });
211
 
        }
212
204
}