JAL-3858 annotation .height is bigger than graphHeight so adjacent PAE matrices are...
[jalview.git] / src / jalview / bin / Commands.java
index b9c04f5..d7d1ea3 100644 (file)
@@ -569,11 +569,33 @@ 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
+          {
+            long tries=1000;
+            while (sv.isBusy() && tries>0)
+            {
+              Thread.sleep(25);
+              if (sv.isBusy())
+              {
+                tries--;
+                Console.debug(
+                        "Waiting for viewer for " + structureFilepath);
+              }
+            }
+            if (tries==0 && sv.isBusy())
+            {
+              Console.warn("Gave up waiting for structure viewer to load. Something may have gone wrong.");
+            }
+          } 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 +635,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
@@ -629,8 +652,18 @@ public class Commands
               if (sview instanceof AppJmol)
               {
                 AppJmol jmol = (AppJmol) sview;
-                jmol.makePDBImage(structureImageFile, imageType, renderer,
+                try { 
+                  Console.debug("Rendering image to "+structureImageFile);
+                  jmol.makePDBImage(structureImageFile, imageType, renderer,
                         userBis);
+                  Console.debug("Finished Rendering image to "+structureImageFile);
+
+                }
+                catch (ImageOutputException ioexc)
+                {
+                  Console.warn("Unexpected error whilst exporting image to "+structureImageFile,ioexc);
+                }
+
               }
               break;
             default: