JAL-3551 copy Jalview features to Pymol 'p' (with pull refactoring)
[jalview.git] / src / jalview / gui / PymolBindingModel.java
index fc957bb..21ba95c 100644 (file)
@@ -12,6 +12,7 @@ import jalview.ext.pymol.PymolCommands;
 import jalview.ext.pymol.PymolManager;
 import jalview.gui.StructureViewer.ViewerType;
 import jalview.structure.AtomSpec;
+import jalview.structure.AtomSpecModel;
 import jalview.structure.StructureCommand;
 import jalview.structure.StructureCommandI;
 import jalview.structure.StructureSelectionManager;
@@ -103,10 +104,9 @@ public class PymolBindingModel extends AAStructureBindingModel
   }
 
   @Override
-  public SequenceRenderer getSequenceRenderer(AlignmentViewPanel alignment)
+  public SequenceRenderer getSequenceRenderer(AlignmentViewPanel avp)
   {
-    // pull up?
-    return new SequenceRenderer(alignment.getAlignViewport());
+    return new SequenceRenderer(avp.getAlignViewport());
   }
 
   @Override
@@ -222,4 +222,28 @@ public class PymolBindingModel extends AAStructureBindingModel
     return ".pse";
   }
 
+  @Override
+  public String getHelpURL()
+  {
+    return "https://pymolwiki.org/";
+  }
+
+  /**
+   * Constructs and sends commands to set atom properties for visible Jalview
+   * features on residues mapped to structure
+   * 
+   * @param avp
+   * @return
+   */
+  public int sendFeaturesToViewer(AlignmentViewPanel avp)
+  {
+    // todo pull up this and JalviewChimeraBinding variant
+    Map<String, Map<Object, AtomSpecModel>> featureValues = buildFeaturesMap(
+            avp);
+    List<StructureCommandI> commands = getCommandGenerator()
+            .setAttributes(featureValues);
+    executeCommands(commands, false, null);
+    return commands.size();
+  }
+
 }