Merge branch 'develop' into patch/JAL-4195_cli_eps_export_npe
[jalview.git] / src / jalview / bin / Commands.java
index bcf231e..d83afed 100644 (file)
@@ -569,11 +569,27 @@ public class Commands
                           structureFilepath, tft, paeFilepath, false,
                           ssFromStructure, false, viewerType);
 
-          if (headless)
+          if (sv==null)
           {
-            sv.setAsync(false);
+            Console.error("Failed to import and open structure view.");
+            continue;
           }
-
+          try
+          {
+            while (sv.isBusy())
+            {
+              Thread.sleep(25);
+              if (sv.isBusy())
+              {
+                Console.debug(
+                        "Waiting for viewer for " + structureFilepath);
+              }
+            }
+          } catch (Exception x)
+          {
+            Console.warn("Exception whilst waiting for structure viewer "+structureFilepath,x);
+          }
+          Console.debug("Successfully opened viewer for "+structureFilepath);
           String structureImageFilename = ArgParser.getValueFromSubValOrArg(
                   avm, av, Arg.STRUCTUREIMAGE, subVals);
           if (sv != null && structureImageFilename != null)
@@ -613,12 +629,13 @@ public class Commands
             }
             BitmapImageSizing userBis = ImageMaker
                     .parseScaleWidthHeightStrings(scale, width, height);
+            // TODO MAKE THIS VIEWER INDEPENDENT!!
             switch (StructureViewer.getViewerType())
             {
             case JMOL:
               try
               {
-                Thread.sleep(1000);
+                Thread.sleep(1000); // WHY ???
               } catch (InterruptedException e)
               {
                 // TODO Auto-generated catch block
@@ -630,8 +647,11 @@ public class Commands
               {
                 AppJmol jmol = (AppJmol) sview;
                 try { 
+                  Console.debug("Rendering image to "+structureImageFile);
                   jmol.makePDBImage(structureImageFile, imageType, renderer,
                         userBis);
+                  Console.debug("Finished Rendering image to "+structureImageFile);
+
                 }
                 catch (ImageOutputException ioexc)
                 {