From: James Procter Date: Mon, 16 Oct 2023 13:41:28 +0000 (+0100) Subject: Merge branch 'bug/JAL-4295_hangjmolandmouseovers' into develop X-Git-Tag: Release_2_11_3_0~4^2~4 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=2f0c43f4ed7f79cee649873401dc4dc3aa7cf406;hp=9caa931a809fad630a9ee0635606c66972a9a4e4;p=jalview.git Merge branch 'bug/JAL-4295_hangjmolandmouseovers' into develop --- diff --git a/src/jalview/ext/jmol/JalviewJmolBinding.java b/src/jalview/ext/jmol/JalviewJmolBinding.java index 870db65..dc18369 100644 --- a/src/jalview/ext/jmol/JalviewJmolBinding.java +++ b/src/jalview/ext/jmol/JalviewJmolBinding.java @@ -267,16 +267,30 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel { 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 @@ -306,17 +320,15 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel } // 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)); @@ -333,8 +345,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel 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;