1 package jalview.ws2.gui;
3 import java.beans.PropertyChangeEvent;
4 import java.beans.PropertyChangeListener;
6 import jalview.gui.IProgressIndicator;
7 import jalview.ws2.WSJob;
8 import jalview.ws2.WSJobStatus;
11 * Monitors annotation jobs' status and updates progress indicators accordingly.
16 public class ProgressBarUpdater implements PropertyChangeListener
18 private IProgressIndicator progressIndicator;
20 public ProgressBarUpdater(IProgressIndicator progressIndicator)
22 this.progressIndicator = progressIndicator;
26 public void propertyChange(PropertyChangeEvent evt)
28 switch (evt.getPropertyName())
36 private void statusChanged(PropertyChangeEvent evt)
38 var job = (WSJob) evt.getSource();
39 var oldStatus = (WSJobStatus) evt.getOldValue();
40 var newStatus = (WSJobStatus) evt.getNewValue();
41 if (!oldStatus.isSubmitted() && newStatus.isSubmitted())
43 progressIndicator.setProgressBar(job.getServiceName(), job.getUid());
45 if (newStatus.isDone() || newStatus.isCancelled())
47 progressIndicator.removeProgressBar(job.getUid());