X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FBioJsHTMLOutput.java;h=5c84824c49daa01b6e106adfe1df6b7f94ebe59d;hb=db93a1adcbe0a4eaaf06e0a70ade0d6c5c1961c3;hp=a1679c3958d50426d10a43ed132540eaa2b170e0;hpb=838e4f91d4a53dd315640dbc9ff6ef7a815ee576;p=jalview.git diff --git a/src/jalview/io/BioJsHTMLOutput.java b/src/jalview/io/BioJsHTMLOutput.java index a1679c3..5c84824 100644 --- a/src/jalview/io/BioJsHTMLOutput.java +++ b/src/jalview/io/BioJsHTMLOutput.java @@ -1,5 +1,5 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1) + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2) * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. @@ -24,6 +24,8 @@ import jalview.api.AlignExportSettingI; import jalview.api.AlignmentViewPanel; import jalview.datamodel.AlignmentExportData; import jalview.exceptions.NoFileSelectedException; +import jalview.gui.IProgressIndicator; +import jalview.gui.OOMWarning; import jalview.json.binding.biojs.BioJSReleasePojo; import jalview.json.binding.biojs.BioJSRepositoryPojo; import jalview.util.MessageManager; @@ -44,6 +46,12 @@ public class BioJsHTMLOutput { private AlignmentViewPanel ap; + private long pSessionId; + + private IProgressIndicator pIndicator; + + private boolean headless; + private static File currentBJSTemplateFile; private static TreeMap bioJsMSAVersions; @@ -59,20 +67,25 @@ public class BioJsHTMLOutput "biojs_template_git_repo", "https://raw.githubusercontent.com/jalview/exporter-templates/master/biojs/package.json"); - public BioJsHTMLOutput(AlignmentViewPanel ap) + public BioJsHTMLOutput(AlignmentViewPanel ap, + IProgressIndicator pIndicator) { if (ap != null) { this.ap = ap; + this.pSessionId = System.currentTimeMillis(); + this.pIndicator = pIndicator; + this.headless = (System.getProperty("java.awt.headless") != null && System + .getProperty("java.awt.headless").equals("true")); } } public void exportJalviewAlignmentAsBioJsHtmlFile() { + String outputFile = null; try { - String outputFile = getOutputFile(); - // String jalviewAlignmentJson = JSONFile.getJSONData(ap); + outputFile = getOutputFile(); AlignExportSettingI exportSettings = new AlignExportSettingI() { @Override @@ -131,11 +144,23 @@ public class BioJsHTMLOutput out.flush(); out.close(); jalview.util.BrowserLauncher.openURL("file:///" + outputFile); + if (pIndicator != null && !headless) + { + pIndicator.setProgressBar(MessageManager.formatMessage( + "status.export_complete", "BioJS"), pSessionId); + } } catch (NoFileSelectedException ex) { // do noting if no file was selected + } catch (OutOfMemoryError err) + { + System.out.println("########################\n" + "OUT OF MEMORY " + + outputFile + "\n" + "########################"); + new OOMWarning("Creating Image for " + outputFile, err); } catch (Exception e) { + pIndicator.setProgressBar(MessageManager.formatMessage( + "info.error_creating_file", "HTML"), pSessionId); e.printStackTrace(); } } @@ -143,6 +168,13 @@ public class BioJsHTMLOutput public String getOutputFile() throws NoFileSelectedException { String selectedFile = null; + if (pIndicator != null && !headless) + { + pIndicator.setProgressBar(MessageManager.formatMessage( + "status.waiting_for_user_to_select_output_file", "HTML"), + pSessionId); + } + JalviewFileChooser jvFileChooser = new JalviewFileChooser( jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[] { "html" }, new String[] { "HTML files" }, @@ -162,6 +194,9 @@ public class BioJsHTMLOutput } else { + pIndicator.setProgressBar(MessageManager.formatMessage( + "status.cancelled_image_export_operation", "BioJS"), + pSessionId); throw new NoFileSelectedException("No file was selected."); } return selectedFile; @@ -245,6 +280,7 @@ public class BioJsHTMLOutput { Thread updateThread = new Thread() { + @Override public void run() { try