BowlerKernel
ProcessMonitor.java
Go to the documentation of this file.
1 package com.neuronrobotics.sdk.util;
2 import java.awt.event.ActionEvent;
3 import java.awt.event.ActionListener;
4 import java.util.ArrayList;
5 
6 import javax.swing.Timer;
7 
8 // TODO: Auto-generated Javadoc
12 public class ProcessMonitor implements ActionListener {
13 
15  private Timer timer = new Timer(100, this);
16 
19 
21  private ArrayList<IProgressMonitorListener> listeners = new ArrayList<IProgressMonitorListener>();
22 
29  this.process = process;
30  }
31 
38  listeners.add(listener);
39  }
40 
44  public void start() {
45  timer.start();
46  }
47 
48 
49  /* (non-Javadoc)
50  * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
51  */
52  public void actionPerformed(ActionEvent arg0) {
53  double value = process.getPercentage();
54  boolean isComplete = process.isComplete();
55 
56  if(isComplete) {
57  timer.stop();
58  }
59 
61  l.onUpdate(value);
62  if(isComplete) {
63  l.onComplete();
64  }
65  }
66  }
67 }
void addProcessMonitorListener(IProgressMonitorListener listener)
ArrayList< IProgressMonitorListener > listeners