X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fjmol%2FJalviewJmolBinding.java;h=038ca48f2253af6956017e767f8271637f454cac;hb=4a67afac64ed574a5b79c7d33c97e58e26f60f30;hp=ab5b2da4e9d7e3a794120803c4b07907871de0d0;hpb=f59ae49cdd2bb8f6721424ea6ce167e8245e7d15;p=jalview.git diff --git a/src/jalview/ext/jmol/JalviewJmolBinding.java b/src/jalview/ext/jmol/JalviewJmolBinding.java index ab5b2da..038ca48 100644 --- a/src/jalview/ext/jmol/JalviewJmolBinding.java +++ b/src/jalview/ext/jmol/JalviewJmolBinding.java @@ -20,56 +20,44 @@ */ package jalview.ext.jmol; -import jalview.api.AlignmentViewPanel; -import jalview.api.FeatureRenderer; -import jalview.api.SequenceRenderer; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.ColumnSelection; -import jalview.datamodel.PDBEntry; -import jalview.datamodel.SequenceI; -import jalview.io.AppletFormatAdapter; -import jalview.schemes.ColourSchemeI; -import jalview.schemes.ResidueProperties; -import jalview.structure.AtomSpec; -import jalview.structure.StructureMappingcommandSet; -import jalview.structure.StructureSelectionManager; -import jalview.structures.models.AAStructureBindingModel; - -import java.awt.Color; import java.awt.Container; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.io.File; import java.net.URL; -import java.security.AccessControlException; -import java.util.Hashtable; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.StringTokenizer; import java.util.Vector; -import javajs.awt.Dimension; - import org.jmol.adapter.smarter.SmarterJmolAdapter; import org.jmol.api.JmolAppConsoleInterface; import org.jmol.api.JmolSelectionListener; import org.jmol.api.JmolStatusListener; import org.jmol.api.JmolViewer; import org.jmol.c.CBK; -import org.jmol.popup.JmolGenericPopup; -import org.jmol.script.T; -import org.jmol.viewer.JC; import org.jmol.viewer.Viewer; +import jalview.api.FeatureRenderer; +import jalview.bin.Cache; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.SequenceI; +import jalview.gui.IProgressIndicator; +import jalview.gui.StructureViewer.ViewerType; +import jalview.io.DataSourceType; +import jalview.io.StructureFile; +import jalview.structure.AtomSpec; +import jalview.structure.StructureCommand; +import jalview.structure.StructureCommandI; +import jalview.structure.StructureSelectionManager; +import jalview.structures.models.AAStructureBindingModel; + public abstract class JalviewJmolBinding extends AAStructureBindingModel implements JmolStatusListener, JmolSelectionListener, ComponentListener { - /* - * state flag used to check if the Jmol viewer's paint method can be called - */ - private boolean finishedInit = false; - - boolean allChainsSelected = false; + private String lastMessage; /* * when true, try to search the associated datamodel for sequences that are @@ -77,44 +65,22 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel */ private boolean associateNewStructs = false; - Vector atomsPicked = new Vector(); - - public Vector chainNames; - - Hashtable chainFile; - - StringBuffer eval = new StringBuffer(); + private Vector atomsPicked = new Vector<>(); - public String fileLoadingError; + private String lastCommand; - /* - * the default or current model displayed if the model cannot be identified - * from the selection message - */ - int frameNo = 0; - - protected JmolGenericPopup jmolpopup; + private boolean loadedInline; - String lastCommand; + private StringBuffer resetLastRes = new StringBuffer(); - String lastMessage; - - boolean loadedInline; - - /** - * current set of model filenames loaded in the Jmol instance - */ - String[] modelFileNames = null; - - StringBuffer resetLastRes = new StringBuffer(); - - public Viewer viewer; + public Viewer jmolViewer; public JalviewJmolBinding(StructureSelectionManager ssm, - PDBEntry[] pdbentry, SequenceI[][] sequenceIs, String[][] chains, - String protocol) + PDBEntry[] pdbentry, SequenceI[][] sequenceIs, + DataSourceType protocol) { - super(ssm, pdbentry, sequenceIs, chains, protocol); + super(ssm, pdbentry, sequenceIs, protocol); + setStructureCommands(new JmolCommands()); /* * viewer = JmolViewer.allocateViewer(renderPanel, new SmarterJmolAdapter(), * "jalviewJmol", ap.av.applet .getDocumentBase(), @@ -129,9 +95,10 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel { super(ssm, seqs); - viewer = theViewer; - viewer.setJmolStatusListener(this); - viewer.addSelectionListener(this); + jmolViewer = theViewer; + jmolViewer.setJmolStatusListener(this); + jmolViewer.addSelectionListener(this); + setStructureCommands(new JmolCommands()); } /** @@ -142,412 +109,35 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel */ public String getViewerTitle() { - return getViewerTitle("JMol", true); + return getViewerTitle("Jmol", true); } - /** - * prepare the view for a given set of models/chains. chainList contains - * strings of the form 'pdbfilename:Chaincode' - * - * @param chainList - * list of chains to make visible - */ - public void centerViewer(Vector chainList) + private String jmolScript(String script) { - StringBuffer cmd = new StringBuffer(); - String lbl; - int mlength, p; - for (int i = 0, iSize = chainList.size(); i < iSize; i++) - { - mlength = 0; - lbl = (String) chainList.elementAt(i); - do - { - p = mlength; - mlength = lbl.indexOf(":", p); - } while (p < mlength && mlength < (lbl.length() - 2)); - // TODO: lookup each pdb id and recover proper model number for it. - cmd.append(":" + lbl.substring(mlength + 1) + " /" - + (1 + getModelNum((String) chainFile.get(lbl))) + " or "); - } - if (cmd.length() > 0) - { - cmd.setLength(cmd.length() - 4); - } - evalStateCommand("select *;restrict " + cmd + ";cartoon;center " + cmd); - } + Cache.log.debug(">>Jmol>> " + script); + String s = jmolViewer.scriptWait(script); + Cache.log.debug("<