Merge branch 'develop' into feature/JAL-3551Pymol
[jalview.git] / src / jalview / gui / AppJmol.java
index 0610239..4058cda 100644 (file)
@@ -41,6 +41,7 @@ import jalview.bin.Cache;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.SequenceI;
+import jalview.gui.ImageExporter.ImageWriterI;
 import jalview.gui.StructureViewer.ViewerType;
 import jalview.structure.StructureCommand;
 import jalview.structures.models.AAStructureBindingModel;
@@ -302,6 +303,8 @@ public class AppJmol extends StructureViewerBase
       } catch (Exception ex)
       {
         Cache.log.error("Couldn't open Jmol viewer!", ex);
+        ex.printStackTrace();
+        return;
       }
     }
     else
@@ -321,9 +324,12 @@ public class AppJmol extends StructureViewerBase
         new OOMWarning("When trying to add structures to the Jmol viewer!",
                 oomerror);
         Cache.log.debug("File locations are " + filesString);
+        return;
       } catch (Exception ex)
       {
         Cache.log.error("Couldn't add files to Jmol viewer!", ex);
+        ex.printStackTrace();
+        return;
       }
     }
 
@@ -502,49 +508,30 @@ public class AppJmol extends StructureViewerBase
     return files;
   }
 
+  /**
+   * Outputs the Jmol viewer image as an image file, after prompting the user to
+   * choose a file and (for EPS) choice of Text or Lineart character rendering
+   * (unless a preference for this is set)
+   * 
+   * @param type
+   */
   @Override
-  public void eps_actionPerformed()
-  {
-    makePDBImage(ImageMaker.TYPE.EPS);
-  }
-
-  @Override
-  public void png_actionPerformed()
-  {
-    makePDBImage(ImageMaker.TYPE.PNG);
-  }
-
-  void makePDBImage(ImageMaker.TYPE type)
+  public void makePDBImage(ImageMaker.TYPE type)
   {
     int width = getWidth();
     int height = getHeight();
-
-    ImageMaker im;
-
-    if (type == ImageMaker.TYPE.PNG)
+    ImageWriterI writer = new ImageWriterI()
     {
-      im = new ImageMaker(this, ImageMaker.TYPE.PNG,
-              "Make PNG image from view",
-              width, height, null, null, null, 0, false);
-    }
-    else if (type == ImageMaker.TYPE.EPS)
-    {
-      im = new ImageMaker(this, ImageMaker.TYPE.EPS,
-              "Make EPS file from view",
-              width, height, null, this.getTitle(), null, 0, false);
-    }
-    else
-    {
-      im = new jalview.util.ImageMaker(this,
-              ImageMaker.TYPE.SVG, "Make SVG file from PCA",
-              width, height, null, this.getTitle(), null, 0, false);
-    }
-
-    if (im.getGraphics() != null)
-    {
-      jmb.jmolViewer.renderScreenImage(im.getGraphics(), width, height);
-      im.writeImage();
-    }
+      @Override
+      public void exportImage(Graphics g) throws Exception
+      {
+        jmb.jmolViewer.renderScreenImage(g, width, height);
+      }
+    };
+    String view = MessageManager.getString("action.view").toLowerCase();
+    ImageExporter exporter = new ImageExporter(writer,
+            getProgressIndicator(), type, getTitle());
+    exporter.doExport(null, this, width, height, view);
   }
 
   @Override
@@ -552,8 +539,8 @@ public class AppJmol extends StructureViewerBase
   {
     try
     {
-      BrowserLauncher
-              .openURL("http://jmol.sourceforge.net/docs/JmolUserGuide/");
+      BrowserLauncher // BH 2018
+              .openURL("http://wiki.jmol.org");//http://jmol.sourceforge.net/docs/JmolUserGuide/");
     } catch (Exception ex)
     {
       System.err.println("Show Jmol help failed with: " + ex.getMessage());