refactor to send list of model filenames involved in each set of Jmol
[jalview.git] / src / jalview / ext / jmol / JmolCommands.java
index 9d01eab..bfb2766 100644 (file)
@@ -8,12 +8,12 @@ import jalview.api.SequenceRenderer;
 import jalview.datamodel.AlignmentI;\r
 import jalview.datamodel.SequenceI;\r
 import jalview.structure.StructureMapping;\r
+import jalview.structure.StructureMappingcommandSet;\r
 import jalview.structure.StructureSelectionManager;\r
 import jalview.util.Comparison;\r
 \r
 import java.awt.Color;\r
 import java.util.ArrayList;\r
-\r
 /**\r
  * Routines for generating Jmol commands for Jalview/Jmol binding\r
  * another cruisecontrol test.\r
@@ -26,20 +26,24 @@ public class JmolCommands
 \r
   /**\r
    * Jmol utility which constructs the commands to colour chains by the given alignment\r
+   * @returns Object[] { Object[] { <model being coloured>, \r
    * \r
    */\r
-  public static String[] getColourBySequenceCommand(StructureSelectionManager ssm, String[] files, SequenceI[][] sequence, SequenceRenderer sr, FeatureRenderer fr, AlignmentI alignment)\r
+  public static StructureMappingcommandSet[] getColourBySequenceCommand(StructureSelectionManager ssm, String[] files, SequenceI[][] sequence, SequenceRenderer sr, FeatureRenderer fr, AlignmentI alignment)\r
   {\r
-    ArrayList<String> str = new ArrayList<String>();\r
-    StringBuffer command = new StringBuffer();\r
-  \r
+    \r
+    ArrayList<StructureMappingcommandSet> cset = new ArrayList<StructureMappingcommandSet>();\r
+    \r
     for (int pdbfnum = 0; pdbfnum < files.length; pdbfnum++)\r
     {\r
       StructureMapping[] mapping = ssm.getMapping(files[pdbfnum]);\r
+      StringBuffer command = new StringBuffer();\r
+      StructureMappingcommandSet smc;\r
+      ArrayList<String> str = new ArrayList<String>();\r
   \r
       if (mapping == null || mapping.length < 1)\r
         continue;\r
-  \r
+      \r
       int lastPos = -1;\r
       for (int s = 0; s < sequence[pdbfnum].length; s++)\r
       {\r
@@ -100,13 +104,16 @@ public class JmolCommands
           }\r
         }\r
       }\r
+      {\r
+          // add final chunk\r
+          str.add(command.toString());\r
+          command.setLength(0);\r
+        }\r
+        // Finally, add the command set ready to be returned.\r
+        cset.add(new StructureMappingcommandSet(JmolCommands.class,files[pdbfnum], str.toArray(new String[str.size()])));\r
+\r
     }\r
-    {\r
-      // add final chunk\r
-      str.add(command.toString());\r
-      command.setLength(0);\r
-    }\r
-    return str.toArray(new String[str.size()]);\r
+    return cset.toArray(new StructureMappingcommandSet[cset.size()]);\r
   }\r
 \r
   public static StringBuffer condenseCommand(StringBuffer command, int pos)\r