--- /dev/null
+package jalview.ws2.gui;
+
+import java.util.List;
+
+import jalview.bin.Console;
+import jalview.datamodel.AlignmentI;
+import jalview.gui.AlignFrame;
+import jalview.gui.Desktop;
+import jalview.ws2.actions.api.JobI;
+import jalview.ws2.actions.api.TaskEventListener;
+import jalview.ws2.actions.api.TaskI;
+import jalview.ws2.api.JobStatus;
+
+public class SearchServiceGuiHandler implements TaskEventListener<AlignmentI>
+{
+ private final AlignFrame parentFrame;
+
+ public SearchServiceGuiHandler(AlignFrame parentFrame)
+ {
+ this.parentFrame = parentFrame;
+ }
+
+ @Override
+ public void taskStarted(TaskI<AlignmentI> source,
+ List<? extends JobI> subJobs)
+ {
+ Console.info("task started with " + subJobs.size() + " jobs");
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void taskStatusChanged(TaskI<AlignmentI> source, JobStatus status)
+ {
+ Console.info("task status " + status);
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void taskCompleted(TaskI<AlignmentI> source, AlignmentI result)
+ {
+ Console.info("task completed");
+ displayResultsNewFrame(result);
+ }
+
+ @Override
+ public void taskException(TaskI<AlignmentI> source, Exception e)
+ {
+ Console.info("task failed", e);
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void taskRestarted(TaskI<AlignmentI> source)
+ {
+ Console.info("task restarted");
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void subJobStatusChanged(TaskI<AlignmentI> source, JobI job,
+ JobStatus status)
+ {
+ Console.info("sub-job " + job.getInternalId() + " status " + status);
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void subJobLogChanged(TaskI<AlignmentI> source, JobI job,
+ String log)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void subJobErrorLogChanged(TaskI<AlignmentI> source, JobI job,
+ String log)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ private void displayResultsNewFrame(AlignmentI aln)
+ {
+ AlignFrame frame = new AlignFrame(aln, AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
+ frame.getFeatureRenderer().transferSettings(
+ parentFrame.getFeatureRenderer().getSettings());
+ Desktop.addInternalFrame(frame, "title", AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
+ }
+}