From 05e40b4dd4e216024024fb921d797917d74daa76 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Mon, 18 Oct 2021 15:04:52 +0100 Subject: [PATCH] JAL-3905 Fix: wait for response when sending mouseovers. Combined remove old label and add new label and also added warning in javadoc about out-of-order execution --- .../ext/rbvi/chimera/JalviewChimeraBinding.java | 31 +++++++++++++++----- .../structures/models/AAStructureBindingModel.java | 5 +++- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/jalview/ext/rbvi/chimera/JalviewChimeraBinding.java b/src/jalview/ext/rbvi/chimera/JalviewChimeraBinding.java index 66420b0..7169fa2 100644 --- a/src/jalview/ext/rbvi/chimera/JalviewChimeraBinding.java +++ b/src/jalview/ext/rbvi/chimera/JalviewChimeraBinding.java @@ -342,6 +342,13 @@ public abstract class JalviewChimeraBinding extends AAStructureBindingModel "Response from command ('" + cmd + "') was:\n" + lastReply); } } + else + { + if (Cache.log.isDebugEnabled()) + { + Cache.log.debug("Command executed: " + cmd); + } + } return reply; } @@ -418,19 +425,29 @@ public abstract class JalviewChimeraBinding extends AAStructureBindingModel { return; } - + if (!found) + { + // not a valid residue label command, so clear + cmd.setLength(0); + } /* - * unshow the label for the previous residue + * prepend with command + * to unshow the label for the previous residue */ if (lastHighlightCommand != null) { - executeCommand(false, null, new StructureCommand("~" + lastHighlightCommand)); + cmd.insert(0, ";"); + cmd.insert(0,lastHighlightCommand); + cmd.insert(0,"~"); + } - if (found) - { - executeCommand(false, null, new StructureCommand(command)); + if (cmd.length()>0) { + executeCommand(true, null, new StructureCommand(cmd.toString())); + } + + if (found) { + this.lastHighlightCommand = command; } - this.lastHighlightCommand = command; } /** diff --git a/src/jalview/structures/models/AAStructureBindingModel.java b/src/jalview/structures/models/AAStructureBindingModel.java index 748381f..f1f2d30 100644 --- a/src/jalview/structures/models/AAStructureBindingModel.java +++ b/src/jalview/structures/models/AAStructureBindingModel.java @@ -1075,7 +1075,10 @@ public abstract class AAStructureBindingModel * executed. *

* If a reply is wanted, the execution is done synchronously (waits), - * otherwise it is done in a separate thread (doesn't wait). + * otherwise it is done in a separate thread (doesn't wait). WARNING: if you + * are sending commands that need to execute before later calls to + * executeCommand (e.g. mouseovers, which clean up after previous ones) then + * set getReply true to ensure that commands are not executed out of order. * * @param getReply * @param msg -- 1.7.10.2