added SeqSearch service interface. Documented and refactored web service client ...
[jalview.git] / src / jalview / ws / JPredClient.java
index 80ed959..e14816c 100755 (executable)
@@ -18,6 +18,8 @@
  */
 package jalview.ws;
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 import java.util.*;
 
 import javax.swing.*;
@@ -217,6 +219,13 @@ public class JPredClient
     startJPredClient(title, seq, null);
   }
 
+  public JPredClient()
+  {
+
+    super();
+    // add a class reference to the list
+  }
+
   private void startJPredClient(String title, SequenceI[] msf,
                                 AlignFrame parentFrame)
   {
@@ -328,4 +337,32 @@ public class JPredClient
 
     return server;
   }
+
+  public void attachWSMenuEntry(JMenu wsmenu, final ServiceHandle sh, final AlignFrame af)
+  {
+    final JMenuItem method = new JMenuItem(sh.getName());
+    method.setToolTipText(sh.getEndpointURL());
+    method.addActionListener(new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        AlignmentView msa = af.gatherSeqOrMsaForSecStrPrediction();
+        if (msa.getSequences().length == 1)
+        {
+          // Single Sequence prediction
+          new jalview.ws.JPredClient(sh, af.getTitle(), false, msa, af, true);
+        }
+        else
+        {
+          if (msa.getSequences().length > 1)
+          {
+            // Sequence profile based prediction
+            new jalview.ws.JPredClient(sh,
+                af.getTitle(), true, msa, af, true);
+          }
+        }
+      }
+    });
+    wsmenu.add(method);
+  }
 }