JAL-3954 create primitive gui handler for search service
[jalview.git] / src / jalview / ws2 / gui / SearchServiceGuiHandler.java
diff --git a/src/jalview/ws2/gui/SearchServiceGuiHandler.java b/src/jalview/ws2/gui/SearchServiceGuiHandler.java
new file mode 100644 (file)
index 0000000..b3ae5c1
--- /dev/null
@@ -0,0 +1,95 @@
+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);
+  }
+}