JAL-3518 tidy up asynchronous structure command execution
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 26 Jun 2020 09:39:08 +0000 (10:39 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 26 Jun 2020 09:39:08 +0000 (10:39 +0100)
src/jalview/structures/models/AAStructureBindingModel.java

index d92c78a..1afa15e 100644 (file)
@@ -1058,16 +1058,16 @@ public abstract class AAStructureBindingModel
   private List<String> executeCommand(StructureCommandI cmd,
           boolean getReply, String msg)
   {
+    final JalviewStructureDisplayI theViewer = getViewer();
+    final long handle = msg == null ? 0 : theViewer.startProgressBar(msg);
     if (getReply)
     {
       /*
        * synchronous (same thread) execution so reply can be returned
        */
-      final JalviewStructureDisplayI theViewer = getViewer();
-      final long handle = msg == null ? 0 : theViewer.startProgressBar(msg);
       try
       {
-        return executeCommand(cmd, getReply);
+        return executeCommand(cmd, true);
       } finally
       {
         if (msg != null)
@@ -1081,9 +1081,6 @@ public abstract class AAStructureBindingModel
       /*
        * asynchronous (new thread) execution if no reply needed
        */
-      final JalviewStructureDisplayI theViewer = getViewer();
-      final long handle = msg == null ? 0 : theViewer.startProgressBar(msg);
-
       SwingUtilities.invokeLater(new Runnable()
       {
         @Override
@@ -1116,8 +1113,7 @@ public abstract class AAStructureBindingModel
           boolean getReply);
 
   /**
-   * Executes one or more structure viewer commands. If a progress message is
-   * provided, it is shown first, and removed after all commands have been run.
+   * Executes one or more structure viewer commands
    * 
    * @param commands
    * @param getReply
@@ -1126,31 +1122,16 @@ public abstract class AAStructureBindingModel
   protected List<String> executeCommands(List<StructureCommandI> commands,
           boolean getReply, String msg)
   {
-    /*
-     * show progress message if specified
-     */
-    final JalviewStructureDisplayI theViewer = getViewer();
-    final long handle = msg == null ? 0 : theViewer.startProgressBar(msg);
-
     List<String> response = getReply ? new ArrayList<>() : null;
-    try
-    {
-      for (StructureCommandI cmd : commands)
-      {
-        List<String> replies = executeCommand(cmd, getReply, null);
-        if (getReply && replies != null)
-        {
-          response.addAll(replies);
-        }
-      }
-      return response;
-    } finally
+    for (StructureCommandI cmd : commands)
     {
-      if (msg != null)
+      List<String> replies = executeCommand(cmd, getReply, msg);
+      if (replies != null)
       {
-        theViewer.stopProgressBar(null, handle);
+        response.addAll(replies);
       }
     }
+    return response;
   }
 
   /**
@@ -1168,7 +1149,7 @@ public abstract class AAStructureBindingModel
 
     List<StructureCommandI> colourBySequenceCommands = commandGenerator
             .colourBySequence(colourMap);
-    executeCommands(colourBySequenceCommands, false, null);
+    executeCommands(colourBySequenceCommands, false, COLOURING_STRUCTURES);
   }
 
   /**