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 jalview.util.Platform;
import java.io.BufferedReader;
import java.io.File;
{
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();
}
/**
protected void setProgressMessage(String message)
{
- if (pIndicator != null && !isHeadless())
+ if (pIndicator != null && !Jalview.isHeadlessMode())
{
pIndicator.setProgressBar(message, pSessionId);
}
}
/**
- * Answers true if HTML export is invoke in headless mode or false otherwise
- *
- * @return
- */
- protected boolean isHeadless()
- {
- return System.getProperty("java.awt.headless") != null
- && System.getProperty("java.awt.headless").equals("true");
- }
-
- /**
- * 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.
*/
protected void exportCompleted()
{
- if (isLaunchInBrowserAfterExport() && !isHeadless())
+ if (isLaunchInBrowserAfterExport() && !Jalview.isHeadlessMode())
{
try
{
- jalview.util.BrowserLauncher
- .openURL("file:///" + getExportedFile());
+ Platform.openURL("file:///" + getExportedFile());
} catch (IOException e)
{
e.printStackTrace();
public void exportHTML(String outputFile)
{
- exportStarted();
+ setProgressMessage(MessageManager.formatMessage(
+ "status.exporting_alignment_as_x_file", getDescription()));
try
{
if (outputFile == null)
*
* @return
*/
- protected abstract String getDescription();
+ protected final String getDescription()
+ {
+ return description;
+ }
}
\ No newline at end of file