next version of Jpred functionality using new client code.
[jalview.git] / src / jalview / gui / AlignFrame.java
index 8c7c9be..5ee6c62 100755 (executable)
@@ -1131,11 +1131,51 @@ if ( viewport.getConservationSelected() )
   protected void jpred_actionPerformed(ActionEvent e)\r
 {\r
 \r
+    JInternalFrame frame = new JInternalFrame();\r
+    if (viewport.getSelectionGroup() != null && viewport.getSelectionGroup().getSize()>0)\r
+    {\r
+      // JBPNote UGLY! To prettify, make SequenceGroup and Alignment conform to some common interface!\r
+      SequenceGroup seqs = viewport.getSelectionGroup();\r
+      if (seqs.getSize() == 1 || !viewport.alignment.isAligned())\r
+      {\r
+        JPredClient ct = new JPredClient( (SequenceI)\r
+                                         seqs.getSequenceAt(0));\r
+      }\r
+      else\r
+      {\r
+        int sz;\r
+        SequenceI[] msa = new SequenceI[sz=seqs.getSize()];\r
+        for (int i = 0; i < sz; i++)\r
+        {\r
+          msa[i] = (SequenceI) seqs.getSequenceAt(i);\r
+        }\r
+\r
+        JPredClient ct = new JPredClient(msa);\r
+      }\r
 \r
-      JInternalFrame frame = new JInternalFrame();\r
-      JPredClient ct = new JPredClient((SequenceI)\r
-                                       viewport.getAlignment().getSequences().elementAt(0));\r
     }\r
+    else\r
+    {\r
+      Vector seqs = viewport.getAlignment().getSequences();\r
+\r
+      if (seqs.size() == 1 || !viewport.alignment.isAligned())\r
+      {\r
+        JPredClient ct = new JPredClient( (SequenceI)\r
+                                         seqs.elementAt(0));\r
+      }\r
+      else\r
+      {\r
+        SequenceI[] msa = new SequenceI[seqs.size()];\r
+        for (int i = 0; i < seqs.size(); i++)\r
+        {\r
+          msa[i] = (SequenceI) seqs.elementAt(i);\r
+        }\r
+\r
+        JPredClient ct = new JPredClient(msa);\r
+      }\r
+\r
+    }\r
+  }\r
 \r
     protected void LoadtreeMenuItem_actionPerformed(ActionEvent e) {\r
     // Pick the tree file\r