X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FHTMLOutput.java;h=ed80eb9a4c89aeef23445d9a203a993e81a02467;hb=d4271d32477e99e9fbbfa5db3e11f1b79324e60d;hp=f7179cf0ac7a51e771dd490b3feffe9135a17051;hpb=f9f0b83445a2da848d21614d94a909888484e25e;p=jalview.git diff --git a/src/jalview/io/HTMLOutput.java b/src/jalview/io/HTMLOutput.java index f7179cf..ed80eb9 100644 --- a/src/jalview/io/HTMLOutput.java +++ b/src/jalview/io/HTMLOutput.java @@ -20,42 +20,54 @@ */ 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.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; + /* + * key for progress or status messages + */ protected long pSessionId; + /* + * (optional) place to write progress messages to + */ protected IProgressIndicator pIndicator; protected File generatedFile; String _bioJson = null; + private String description; + /** * Constructor given an alignment panel (which should not be null) * * @param ap + * @param desc */ - public HTMLOutput(AlignmentPanel ap) + public HTMLOutput(AlignmentPanel ap, String desc) { this.ap = ap; this.pIndicator = ap.alignFrame; + this.description = desc; + this.pSessionId = System.currentTimeMillis(); } /** @@ -243,16 +255,6 @@ public abstract class HTMLOutput implements Runnable /** * This method provides implementation of consistent behaviour which should - * occur before a HTML file export. It MUST be called at the start of the - * exportHTML() method implementation. - */ - protected void exportStarted() - { - pSessionId = System.currentTimeMillis(); - } - - /** - * This method provides implementation of consistent behaviour which should * occur after a HTML file export. It MUST be called at the end of the * exportHTML() method implementation. */ @@ -260,14 +262,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(); } + */ } } @@ -299,7 +304,13 @@ public abstract class HTMLOutput implements Runnable public void exportHTML(String outputFile) { - exportStarted(); + exportHTML(outputFile, null); + } + + public void exportHTML(String outputFile, String renderer) + { + setProgressMessage(MessageManager.formatMessage( + "status.exporting_alignment_as_x_file", getDescription())); try { if (outputFile == null) @@ -324,8 +335,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(); + } + } /** @@ -334,5 +352,11 @@ public abstract class HTMLOutput implements Runnable * * @return */ - protected abstract String getDescription(); + protected final String getDescription() + { + return description; + } + + // used to pass an option such as render to run + public abstract void run(String string); } \ No newline at end of file