3 import java.beans.PropertyChangeEvent;
4 import java.beans.PropertyChangeListener;
5 import java.util.Objects;
7 import jalview.gui.WebserviceInfo;
9 public class WebServiceInfoUpdater implements PropertyChangeListener
11 private final WebServiceWorkerI worker;
12 private final WebserviceInfo wsInfo;
14 private String outputHeader = "";
16 public WebServiceInfoUpdater(WebServiceWorkerI worker, WebserviceInfo wsInfo)
22 public String getOutputHeader()
27 public void setOutputHeader(String header)
29 this.outputHeader = header;
33 public void propertyChange(PropertyChangeEvent evt)
35 switch (evt.getPropertyName())
49 private void statusChanged(PropertyChangeEvent evt)
51 WSJob job = (WSJob) evt.getSource();
52 WSJobStatus status = (WSJobStatus) evt.getNewValue();
59 wsInfoStatus = WebserviceInfo.STATE_QUEUING;
62 wsInfoStatus = WebserviceInfo.STATE_RUNNING;
65 wsInfoStatus = WebserviceInfo.STATE_STOPPED_OK;
68 wsInfoStatus = WebserviceInfo.STATE_CANCELLED_OK;
74 wsInfoStatus = WebserviceInfo.STATE_STOPPED_ERROR;
77 wsInfoStatus = WebserviceInfo.STATE_STOPPED_SERVERERROR;
80 wsInfo.setStatus(job.getJobNum(), wsInfoStatus);
81 updateWSInfoGlobalStatus();
84 private void logChanged(PropertyChangeEvent evt)
86 WSJob job = (WSJob) evt.getSource();
87 String oldLog = (String) evt.getOldValue();
88 String newLog = (String) evt.getNewValue();
89 wsInfo.appendProgressText(job.getJobNum(),
90 newLog.substring(oldLog.length()));
93 private void errorLogChanged(PropertyChangeEvent evt)
95 WSJob job = (WSJob) evt.getSource();
96 String oldLog = (String) evt.getOldValue();
97 String newLog = (String) evt.getNewValue();
98 wsInfo.appendProgressText(job.getJobNum(),
99 newLog.substring(oldLog.length()));
103 private void updateWSInfoGlobalStatus()
105 var jobs = worker.getJobs();
106 if (jobs.countRunning() > 0)
108 wsInfo.setStatus(WebserviceInfo.STATE_RUNNING);
110 else if (jobs.countQueuing() > 0
111 || jobs.countSubmitted() < jobs.size())
113 wsInfo.setStatus(WebserviceInfo.STATE_QUEUING);
117 if (jobs.countSuccessful() > 0)
119 wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_OK);
121 else if (jobs.countCancelled() > 0)
123 wsInfo.setStatus(WebserviceInfo.STATE_CANCELLED_OK);
125 else if (jobs.countFailed() > 0)
127 wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_ERROR);