JAL-4196 structure view cli tests wait using new jalview.Desktop.instance.operationsA...
authorJames Procter <j.procter@dundee.ac.uk>
Thu, 8 Jun 2023 10:30:55 +0000 (11:30 +0100)
committerJames Procter <j.procter@dundee.ac.uk>
Thu, 8 Jun 2023 10:31:16 +0000 (11:31 +0100)
src/jalview/gui/Desktop.java
test/jalview/bin/CommandsTest2.java

index bfd700f..33ba97c 100644 (file)
@@ -3589,4 +3589,24 @@ public class Desktop extends jalview.jbgui.GDesktop
       Desktop.instance = null;
     }
   }
+
+  /**
+   * checks if any progress bars are being displayed in any of the windows managed by the desktop
+   * @return
+   */
+  public boolean operationsAreInProgress()
+  {
+    JInternalFrame[] frames = getAllFrames();
+    for (JInternalFrame frame:frames)
+    {
+      if (frame instanceof IProgressIndicator)
+      {
+        if (((IProgressIndicator)frame).operationInProgress())
+        {
+          return true;
+        }
+      }
+    }
+    return operationInProgress();
+  }
 }
index 0c2071a..d6b6f3c 100644 (file)
@@ -65,14 +65,18 @@ public class CommandsTest2
     String[] args = cmdLine.split("\\s+");
 
     CommandsTest.callJalviewMain(args);
-    try
+    while (Desktop.instance!=null && Desktop.instance.operationsAreInProgress())
     {
-      // sleep for slow build server to open annotations and viewer windows
-      Thread.sleep(seqNum * 50 + annNum * 50 + viewerNum * 500);
-    } catch (InterruptedException e)
-    {
-      e.printStackTrace();
+      try
+      {
+        // sleep for slow build server to open annotations and viewer windows
+        Thread.sleep(viewerNum * 50);
+      } catch (InterruptedException e)
+      {
+        e.printStackTrace();
+      }
     }
+    ;
 
     AlignFrame[] afs = Desktop.getAlignFrames();
     Assert.assertNotNull(afs);