4
1
package pipe.gui.widgets;
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;
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;
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;
63
55
private Timer memoryTimer;
65
public RunningVerificationDialog(JFrame owner) {
66
super(owner, "Verification in Progress", true);
57
public RunningVerificationDialog(JFrame owner, final SwingWorker<?, ?> worker) {
58
super(owner, "Verification in Progress", true);
65
private void initActions() {
66
okButton.addActionListener(evt -> {
71
addWindowListener(new WindowAdapter() {
73
public void windowClosing(WindowEvent e) {
79
worker.addPropertyChangeListener(event -> {
80
if (event.getPropertyName().equals("state")) {
81
StateValue stateValue = (StateValue) event.getNewValue();
82
if (stateValue.equals(StateValue.DONE)) {
89
private void closeWindow() {
71
96
public void initComponents() {
72
97
setLocationRelativeTo(null);
73
98
setLayout(new GridBagLayout());
75
100
timer = new Timer(1000, new AbstractAction() {
76
private static final long serialVersionUID = 1327695063762640628L;
78
101
public void actionPerformed(ActionEvent e) {
79
timerLabel.setText((System.currentTimeMillis() - startTimeMs)
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");
85
107
memoryTimer = new Timer(50, new AbstractAction() {
86
private static final long serialVersionUID = 1327695063762640628L;
88
109
public void actionPerformed(ActionEvent e) {
89
110
if(MemoryMonitor.isAttached()){
180
201
memoryTimer.start();
183
public void setupListeners(final SwingWorker<?, ?> worker) {
184
okButton.addActionListener(new ActionListener() {
185
public void actionPerformed(ActionEvent evt) {
190
addWindowListener(new WindowAdapter() {
192
public void windowClosing(WindowEvent e) {
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)) {