fix for JAL-930
[jalview.git] / src / jalview / ext / jmol / JalviewJmolBinding.java
index 8e1ede4..5294d89 100644 (file)
@@ -30,6 +30,7 @@ import jalview.api.AlignmentViewPanel;
 import jalview.api.FeatureRenderer;\r
 import jalview.api.SequenceRenderer;\r
 import jalview.api.SequenceStructureBinding;\r
+import jalview.api.StructureSelectionManagerProvider;\r
 import jalview.datamodel.*;\r
 import jalview.structure.*;\r
 import jalview.io.*;\r
@@ -45,7 +46,7 @@ import jalview.schemes.*;
 \r
 public abstract class JalviewJmolBinding implements StructureListener,\r
         JmolStatusListener, SequenceStructureBinding,\r
-        JmolSelectionListener, ComponentListener\r
+        JmolSelectionListener, ComponentListener, StructureSelectionManagerProvider\r
 \r
 {\r
   /**\r
@@ -128,13 +129,14 @@ public abstract class JalviewJmolBinding implements StructureListener,
    */\r
   public SequenceI[][] sequence;\r
 \r
-  StructureSelectionManager ssm;\r
+  public StructureSelectionManager ssm;\r
 \r
   public JmolViewer viewer;\r
 \r
-  public JalviewJmolBinding(PDBEntry[] pdbentry, SequenceI[][] sequenceIs,\r
+  public JalviewJmolBinding(StructureSelectionManager ssm, PDBEntry[] pdbentry, SequenceI[][] sequenceIs,\r
           String[][] chains, String protocol)\r
   {\r
+    this.ssm = ssm;\r
     this.sequence = sequenceIs;\r
     this.chains = chains;\r
     this.pdbentry = pdbentry;\r
@@ -152,8 +154,9 @@ public abstract class JalviewJmolBinding implements StructureListener,
      */\r
   }\r
 \r
-  public JalviewJmolBinding(JmolViewer viewer2)\r
+  public JalviewJmolBinding(StructureSelectionManager ssm, JmolViewer viewer2)\r
   {\r
+    this.ssm = ssm;\r
     viewer = viewer2;\r
     viewer.setJmolStatusListener(this);\r
     viewer.addSelectionListener(this);\r
@@ -227,8 +230,7 @@ public abstract class JalviewJmolBinding implements StructureListener,
   {\r
     viewer.setModeMouse(org.jmol.viewer.JmolConstants.MOUSE_NONE);\r
     // remove listeners for all structures in viewer\r
-    StructureSelectionManager.getStructureSelectionManager()\r
-            .removeStructureViewerListener(this, this.getPdbFile());\r
+    ssm.removeStructureViewerListener(this, this.getPdbFile());\r
     // and shut down jmol\r
     viewer.evalStringQuiet("zap");\r
     viewer.setJmolStatusListener(null);\r
@@ -568,7 +570,8 @@ public abstract class JalviewJmolBinding implements StructureListener,
     }\r
     AlignmentI alignment = alignmentv.getAlignment();\r
 \r
-    for (String cbyseq : JmolCommands.getColourBySequenceCommand(ssm, files, sequence, sr, fr, alignment)) {\r
+    for (jalview.structure.StructureMappingcommandSet cpdbbyseq: JmolCommands.getColourBySequenceCommand(ssm, files, sequence, sr, fr, alignment))\r
+      for (String cbyseq : cpdbbyseq.commands) {\r
       evalStateCommand(cbyseq);\r
     }\r
   }\r
@@ -1044,7 +1047,6 @@ public abstract class JalviewJmolBinding implements StructureListener,
     chainFile = new Hashtable();\r
     boolean notifyLoaded = false;\r
     String[] modelfilenames = getPdbFile();\r
-    ssm = StructureSelectionManager.getStructureSelectionManager();\r
     // first check if we've lost any structures\r
     if (oldmodels != null && oldmodels.length > 0)\r
     {\r
@@ -1147,7 +1149,6 @@ public abstract class JalviewJmolBinding implements StructureListener,
           }\r
           if (matches)\r
           {\r
-            pdbentry[pe].setId(pdb.id);\r
             // add an entry for every chain in the model\r
             for (int i = 0; i < pdb.chains.size(); i++)\r
             {\r
@@ -1532,4 +1533,14 @@ public abstract class JalviewJmolBinding implements StructureListener,
       chains[pe] = null;\r
     }\r
   }\r
+  /**\r
+   * \r
+   * @param pdbfile\r
+   * @return text report of alignment between pdbfile and any associated alignment sequences\r
+   */\r
+  public String printMapping(String pdbfile)\r
+  {\r
+    return ssm.printMapping(pdbfile);\r
+  }\r
+\r
 }\r