Merge branch 'develop' into features/JAL-518_justify_seqs_in_region
[jalview.git] / src / jalview / io / HTMLOutput.java
index eb44180..0b541e2 100644 (file)
@@ -29,10 +29,12 @@ 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;
 
 public abstract class HTMLOutput implements Runnable
@@ -237,7 +239,7 @@ public abstract class HTMLOutput implements Runnable
     }
     else
     {
-      System.out.println(message);
+      jalview.bin.Console.outPrintln(message);
     }
   }
 
@@ -301,7 +303,13 @@ 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()));
@@ -329,7 +337,14 @@ public abstract class HTMLOutput implements Runnable
       e.printStackTrace();
       return;
     }
-    new Thread(this).start();
+    if (Jalview.isHeadlessMode())
+    {
+      this.run(renderer);
+    }
+    else
+    {
+      new Thread(this).start();
+    }
 
   }
 
@@ -343,4 +358,7 @@ public abstract class HTMLOutput implements Runnable
   {
     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