1 package jalview.ws2.gui;
5 import jalview.api.FeatureColourI;
6 import jalview.datamodel.features.FeatureMatcherSetI;
7 import jalview.gui.AlignFrame;
8 import jalview.gui.AlignmentPanel;
9 import jalview.gui.IProgressIndicator;
10 import jalview.gui.IProgressIndicatorHandler;
11 import jalview.schemes.FeatureSettingsAdapter;
12 import jalview.ws2.actions.annotation.AnnotationAction;
13 import jalview.ws2.actions.annotation.AnnotationResult;
14 import jalview.ws2.actions.api.JobI;
15 import jalview.ws2.actions.api.TaskEventListener;
16 import jalview.ws2.actions.api.TaskI;
17 import jalview.ws2.api.JobStatus;
19 public class AnnotationServiceGuiHandler
20 implements TaskEventListener<AnnotationResult>
22 private final AlignFrame alignFrame;
24 private final AlignmentPanel alignPanel;
26 private final IProgressIndicator progressIndicator;
28 private final AnnotationAction action;
30 public AnnotationServiceGuiHandler(AnnotationAction action, AlignFrame frame)
32 this.alignFrame = frame;
33 this.alignPanel = frame.alignPanel;
34 this.progressIndicator = frame;
39 public void taskStarted(TaskI<AnnotationResult> source, List<? extends JobI> subJobs)
41 progressIndicator.registerHandler(source.getUid(),
42 new IProgressIndicatorHandler()
45 public boolean cancelActivity(long id)
52 public boolean canCancel()
60 public void taskStatusChanged(TaskI<AnnotationResult> source, JobStatus status)
69 progressIndicator.removeProgressBar(source.getUid());
76 progressIndicator.addProgressBar(source.getUid(), action.getFullName());
82 public void taskCompleted(TaskI<AnnotationResult> source, final AnnotationResult result)
86 if (result.getTransferFeatures())
88 alignFrame.getViewport().applyFeaturesStyle(new FeatureSettingsAdapter()
91 public FeatureColourI getFeatureColour(String type)
93 return result.getFeatureColours().get(type);
97 public FeatureMatcherSetI getFeatureFilters(String type)
99 return result.getFeatureFilters().get(type);
103 public boolean isFeatureDisplayed(String type)
105 return result.getFeatureColours().containsKey(type);
108 if (alignFrame.alignPanel == alignPanel)
110 alignFrame.getViewport().setShowSequenceFeatures(true);
111 alignFrame.setMenusForViewport();
114 alignPanel.adjustAnnotationHeight();
118 public void taskException(TaskI<AnnotationResult> source, Exception e)
124 public void subJobStatusChanged(TaskI<AnnotationResult> source, JobI job, JobStatus status)
130 public void subJobLogChanged(TaskI<AnnotationResult> source, JobI job, String log)
136 public void subJobErrorLogChanged(TaskI<AnnotationResult> source, JobI job, String log)