JAL-4308 reduce number of refs to 5, always have canonical reference first.
[jalview.git] / src / jalview / io / HTMLOutput.java
index 54e7e4b..02d46e7 100644 (file)
  */
 package jalview.io;
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.Objects;
+
 import jalview.api.AlignExportSettingsI;
 import jalview.bin.Cache;
+import jalview.bin.Jalview;
 import jalview.datamodel.AlignExportSettingsAdapter;
 import jalview.datamodel.AlignmentExportData;
 import jalview.gui.AlignmentPanel;
 import jalview.gui.IProgressIndicator;
+import jalview.io.exceptions.ImageOutputException;
 import jalview.util.MessageManager;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.Objects;
-
 public abstract class HTMLOutput implements Runnable
 {
   protected AlignmentPanel ap;
@@ -59,7 +61,7 @@ public abstract class HTMLOutput implements Runnable
    * Constructor given an alignment panel (which should not be null)
    * 
    * @param ap
-   * @param desc 
+   * @param desc
    */
   public HTMLOutput(AlignmentPanel ap, String desc)
   {
@@ -237,7 +239,7 @@ public abstract class HTMLOutput implements Runnable
     }
     else
     {
-      System.out.println(message);
+      jalview.bin.Console.outPrintln(message);
     }
   }
 
@@ -261,14 +263,17 @@ public abstract class HTMLOutput implements Runnable
   {
     if (isLaunchInBrowserAfterExport() && !isHeadless())
     {
+      /*
       try
       {
-        jalview.util.BrowserLauncher
-                .openURL("file:///" + getExportedFile());
+      */
+      jalview.util.BrowserLauncher.openURL("file:///" + getExportedFile());
+      /*
       } catch (IOException e)
       {
         e.printStackTrace();
       }
+      */
     }
   }
 
@@ -298,10 +303,15 @@ public abstract class HTMLOutput implements Runnable
     return generatedFile;
   }
 
-  public void exportHTML(String outputFile)
+  public void exportHTML(String outputFile) throws ImageOutputException
+  {
+    exportHTML(outputFile, null);
+  }
+
+  public void exportHTML(String outputFile, String renderer) throws ImageOutputException
   {
     setProgressMessage(MessageManager.formatMessage(
-        "status.exporting_alignment_as_x_file", getDescription()));
+            "status.exporting_alignment_as_x_file", getDescription()));
     try
     {
       if (outputFile == null)
@@ -326,8 +336,15 @@ public abstract class HTMLOutput implements Runnable
       e.printStackTrace();
       return;
     }
-    new Thread(this).start();
-  
+    if (Jalview.isHeadlessMode())
+    {
+      this.run(renderer);
+    }
+    else
+    {
+      new Thread(this).start();
+    }
+
   }
 
   /**
@@ -338,6 +355,9 @@ public abstract class HTMLOutput implements Runnable
    */
   protected final String getDescription()
   {
-       return description;
+    return description;
   }
+
+  // used to pass an option such as render to run
+  public abstract void run(String string) throws ImageOutputException;
 }
\ No newline at end of file