eb3e350271c1928e2e31c4cb11df89e125c22f98
[jalview.git] / src / jalview / ws2 / WebServiceInfoUpdater.java
1 package jalview.ws2;
2
3 import java.beans.PropertyChangeEvent;
4 import java.beans.PropertyChangeListener;
5 import java.util.Objects;
6
7 import jalview.gui.WebserviceInfo;
8
9 public class WebServiceInfoUpdater implements PropertyChangeListener
10 {
11   private final WebserviceInfo wsInfo;
12   private String outputHeader = "";
13
14   public WebServiceInfoUpdater(WebserviceInfo wsInfo) {
15     this.wsInfo = wsInfo;
16   }
17
18   public String getOutputHeader() {
19     return outputHeader;
20   }
21
22   public void setOutputHeader(String header) {
23     this.outputHeader = header;
24   }
25
26   @Override
27   public void propertyChange(PropertyChangeEvent evt)
28   {
29     switch (evt.getPropertyName()) {
30     case "status":
31       statusChanged(evt);
32       break;
33     case "log":
34       logChanged(evt);
35       break;
36     case "errorLog":
37       errorLogChanged(evt);
38       break;
39     }
40   }
41
42   private void statusChanged(PropertyChangeEvent evt) {
43     WSJob job = (WSJob) evt.getSource();
44     WSJobStatus status = (WSJobStatus) evt.getNewValue();
45     int wsInfoStatus = 0;
46     switch (status) {
47     case READY:
48     case SUBMITTED:
49     case QUEUED:
50       wsInfoStatus = WebserviceInfo.STATE_QUEUING;
51       break;
52     case RUNNING:
53       wsInfoStatus = WebserviceInfo.STATE_RUNNING;
54       break;
55     case FINISHED:
56       wsInfoStatus = WebserviceInfo.STATE_STOPPED_OK;
57       break;
58     case CANCELLED:
59       wsInfoStatus = WebserviceInfo.STATE_CANCELLED_OK;
60       break;
61     case INVALID:
62     case BROKEN:
63     case FAILED:
64     case UNKNOWN:
65       wsInfoStatus = WebserviceInfo.STATE_STOPPED_ERROR;
66       break;
67     case SERVER_ERROR:
68       wsInfoStatus = WebserviceInfo.STATE_STOPPED_SERVERERROR;
69       break;
70     }
71     wsInfo.setStatus(job.getJobNum(), wsInfoStatus);
72   }
73
74   private void logChanged(PropertyChangeEvent evt) {
75     WSJob job = (WSJob) evt.getSource();
76     String oldLog = (String) evt.getOldValue();
77     String newLog = (String) evt.getNewValue();
78     wsInfo.appendProgressText(job.getJobNum(), newLog.substring(oldLog.length()));
79   }
80
81   private void errorLogChanged(PropertyChangeEvent evt) {
82     WSJob job = (WSJob) evt.getSource();
83     String oldLog = (String) evt.getOldValue();
84     String newLog = (String) evt.getNewValue();
85     wsInfo.appendProgressText(job.getJobNum(), newLog.substring(oldLog.length()));
86   }
87
88
89 }