X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPymolBindingModel.java;h=538b101b22015f22a4099e08915eab15924fd132;hb=789a8f2ab91523923a6fa307acb4323b2bd7e756;hp=fc957bb6e4f55520c07706802d29a2c7a7812965;hpb=d85a2741994c169e1b81db8f9166f5214ff1f561;p=jalview.git diff --git a/src/jalview/gui/PymolBindingModel.java b/src/jalview/gui/PymolBindingModel.java index fc957bb..538b101 100644 --- a/src/jalview/gui/PymolBindingModel.java +++ b/src/jalview/gui/PymolBindingModel.java @@ -6,12 +6,14 @@ import java.util.List; import java.util.Map; import jalview.api.AlignmentViewPanel; +import jalview.bin.Cache; import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; 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; @@ -28,8 +30,6 @@ public class PymolBindingModel extends AAStructureBindingModel private PymolManager pymolManager; - private Thread pymolMonitor; - /* * full paths to structure files opened in PyMOL */ @@ -103,10 +103,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 @@ -139,24 +138,7 @@ public class PymolBindingModel extends AAStructureBindingModel public void closeViewer(boolean closePymol) { super.closeViewer(closePymol); - if (closePymol) - { - pymolManager.exitPymol(); - } pymolManager = null; - - if (pymolMonitor != null) - { - pymolMonitor.interrupt(); - } - } - - public boolean openSession(String pymolSessionFile) - { - StructureCommandI cmd = getCommandGenerator() - .loadFile(pymolSessionFile); - executeCommand(cmd, false); - return true; } public boolean launchPymol() @@ -166,16 +148,17 @@ public class PymolBindingModel extends AAStructureBindingModel return true; } - boolean launched = pymolManager.launchPymol(); - if (launched) + Process pymol = pymolManager.launchPymol(); + if (pymol != null) { // start listening for PyMOL selections - how?? + startExternalViewerMonitor(pymol); } else { - System.err.println("Failed to launch PyMOL!"); + Cache.log.error("Failed to launch PyMOL!"); } - return launched; + return pymol != null; } public void openFile(PDBEntry pe) @@ -222,4 +205,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> featureValues = buildFeaturesMap( + avp); + List commands = getCommandGenerator() + .setAttributes(featureValues); + executeCommands(commands, false, null); + return commands.size(); + } + }