JAL-3878 Add javadocs to created classes and reformat code.
[jalview.git] / src / jalview / ws2 / gui / ProgressBarUpdater.java
1 package jalview.ws2.gui;
2
3 import java.beans.PropertyChangeEvent;
4 import java.beans.PropertyChangeListener;
5
6 import jalview.gui.IProgressIndicator;
7 import jalview.ws2.WSJob;
8 import jalview.ws2.WSJobStatus;
9
10 /**
11  * Monitors annotation jobs' status and updates progress indicators accordingly.
12  * 
13  * @author mmwarowny
14  *
15  */
16 public class ProgressBarUpdater implements PropertyChangeListener
17 {
18   private IProgressIndicator progressIndicator;
19
20   public ProgressBarUpdater(IProgressIndicator progressIndicator)
21   {
22     this.progressIndicator = progressIndicator;
23   }
24
25   @Override
26   public void propertyChange(PropertyChangeEvent evt)
27   {
28     switch (evt.getPropertyName())
29     {
30     case "status":
31       statusChanged(evt);
32       break;
33     }
34   }
35
36   private void statusChanged(PropertyChangeEvent evt)
37   {
38     var job = (WSJob) evt.getSource();
39     var oldStatus = (WSJobStatus) evt.getOldValue();
40     var newStatus = (WSJobStatus) evt.getNewValue();
41     if (!oldStatus.isSubmitted() && newStatus.isSubmitted())
42     {
43       progressIndicator.setProgressBar(job.getServiceName(), job.getUid());
44     }
45     if (newStatus.isDone() || newStatus.isCancelled())
46     {
47       progressIndicator.removeProgressBar(job.getUid());
48     }
49   }
50 }