{
if (atoms != null)
{
- boolean useScriptWait = atoms.size() > 1;
if (resetLastRes.length() > 0)
{
- jmolScript(resetLastRes.toString(), useScriptWait);
+ jmolScript(resetLastRes.toString());
resetLastRes.setLength(0);
}
+ StringBuilder highlightCommands=null;
for (AtomSpec atom : atoms)
{
- highlightAtom(atom.getAtomIndex(), atom.getPdbResNum(),
- atom.getChain(), atom.getPdbFile(), useScriptWait);
+ StringBuilder thisAtom = highlightAtom(atom.getAtomIndex(), atom.getPdbResNum(),
+ atom.getChain(), atom.getPdbFile());
+ if (thisAtom!=null) {
+ if (highlightCommands==null)
+ {
+ highlightCommands=thisAtom;
+ } else {
+ highlightCommands.append(thisAtom);
+ }
+ }
+ }
+ if (highlightCommands!=null)
+ {
+ jmolHistory(false);
+ jmolScript(highlightCommands.toString());
+ jmolHistory(true);
}
// Highlight distances between atoms with a 'measure' command - not yet
// working
}
// jmol/ssm only
- public void highlightAtom(int atomIndex, int pdbResNum, String chain,
- String pdbfile, boolean useScriptWait)
+ private StringBuilder highlightAtom(int atomIndex, int pdbResNum, String chain,
+ String pdbfile)
{
String modelId = getModelIdForFile(pdbfile);
if (modelId.isEmpty())
{
- return;
+ return null;
}
- jmolHistory(false, useScriptWait);
-
StringBuilder selection = new StringBuilder(32);
StringBuilder cmd = new StringBuilder(64);
selection.append("select ").append(String.valueOf(pdbResNum));
resetLastRes.append(selection).append(";wireframe 0;").append(selection)
.append(" and not hetero; spacefill 0;");
- jmolScript(cmd.toString(), useScriptWait);
- jmolHistory(true, useScriptWait);
+ return cmd;
}
private boolean debug = true;