JAL-4199 Remove taskRestarted from task events
[jalview.git] / src / jalview / ws2 / gui / AnnotationServiceGuiHandler.java
1 package jalview.ws2.gui;
2
3 import java.util.List;
4
5 import jalview.gui.AlignFrame;
6 import jalview.gui.AlignmentPanel;
7 import jalview.gui.IProgressIndicator;
8 import jalview.gui.IProgressIndicatorHandler;
9 import jalview.ws2.actions.annotation.AnnotationAction;
10 import jalview.ws2.actions.annotation.AnnotationResult;
11 import jalview.ws2.actions.api.JobI;
12 import jalview.ws2.actions.api.TaskEventListener;
13 import jalview.ws2.actions.api.TaskI;
14 import jalview.ws2.api.JobStatus;
15
16 public class AnnotationServiceGuiHandler
17     implements TaskEventListener<AnnotationResult>
18 {
19   private final AlignFrame alignFrame;
20
21   private final AlignmentPanel alignPanel;
22
23   private final IProgressIndicator progressIndicator;
24
25   private final AnnotationAction action;
26
27   public AnnotationServiceGuiHandler(AnnotationAction action, AlignFrame frame)
28   {
29     this.alignFrame = frame;
30     this.alignPanel = frame.alignPanel;
31     this.progressIndicator = frame;
32     this.action = action;
33   }
34
35   @Override
36   public void taskStarted(TaskI<AnnotationResult> source, List<? extends JobI> subJobs)
37   {
38     progressIndicator.registerHandler(source.getUid(),
39         new IProgressIndicatorHandler()
40         {
41           @Override
42           public boolean cancelActivity(long id)
43           {
44             source.cancel();
45             return true;
46           }
47
48           @Override
49           public boolean canCancel()
50           {
51             return true;
52           }
53         });
54   }
55
56   @Override
57   public void taskStatusChanged(TaskI<AnnotationResult> source, JobStatus status)
58   {
59     switch (status)
60     {
61     case INVALID:
62     case COMPLETED:
63     case CANCELLED:
64     case FAILED:
65     case SERVER_ERROR:
66       progressIndicator.removeProgressBar(source.getUid());
67       break;
68     case READY:
69     case SUBMITTED:
70     case QUEUED:
71     case RUNNING:
72     case UNKNOWN:
73       progressIndicator.addProgressBar(source.getUid(), action.getFullName());
74       break;
75     }
76   }
77
78   @Override
79   public void taskCompleted(TaskI<AnnotationResult> source, AnnotationResult result)
80   {
81     if (result == null)
82       return;
83     if (result.getTransferFeatures() && alignFrame.alignPanel == alignPanel)
84     {
85       alignFrame.getViewport().setShowSequenceFeatures(true);
86       alignFrame.setMenusForViewport();
87     }
88     alignPanel.adjustAnnotationHeight();
89   }
90
91   @Override
92   public void taskException(TaskI<AnnotationResult> source, Exception e)
93   {
94
95   }
96
97   @Override
98   public void subJobStatusChanged(TaskI<AnnotationResult> source, JobI job, JobStatus status)
99   {
100
101   }
102
103   @Override
104   public void subJobLogChanged(TaskI<AnnotationResult> source, JobI job, String log)
105   {
106
107   }
108
109   @Override
110   public void subJobErrorLogChanged(TaskI<AnnotationResult> source, JobI job, String log)
111   {
112
113   }
114 }