X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FHtmlSvgOutput.java;h=16b2647c1694263a618211dee6f15cabc1ea06d1;hb=2526066acdc3faf3a178e50672c78e428287e9ef;hp=4793ac4cbd7f95a91a2bead50bfed73653bbb17f;hpb=afcdc36e5f65333f8ff9ca3229b6cffdb27edca7;p=jalview.git diff --git a/src/jalview/io/HtmlSvgOutput.java b/src/jalview/io/HtmlSvgOutput.java index 4793ac4..16b2647 100644 --- a/src/jalview/io/HtmlSvgOutput.java +++ b/src/jalview/io/HtmlSvgOutput.java @@ -1,10 +1,10 @@ package jalview.io; +import jalview.api.FeatureRenderer; +import jalview.datamodel.AlignmentExportData; import jalview.datamodel.SequenceI; import jalview.gui.AlignViewport; import jalview.gui.AlignmentPanel; -import jalview.gui.AnnotationPanel; -import jalview.gui.FeatureRenderer; import jalview.gui.HTMLOptions; import jalview.math.AlignmentDimension; import jalview.util.MessageManager; @@ -27,14 +27,12 @@ public class HtmlSvgOutput FeatureRenderer fr; AlignmentPanel ap; - AnnotationPanel annotationPanel; public HtmlSvgOutput(File file, AlignmentPanel ap) { - - this.av = ap.av; - this.ap = ap; - this.annotationPanel = ap.getAnnotationPanel(); + this.av = ap.av; + this.ap = ap; + fr = ap.cloneFeatureRenderer(); generateHtmlSvgOutput(file); } @@ -42,11 +40,7 @@ public class HtmlSvgOutput { try { - if (file == null /* - * && !(System.getProperty("java.awt.headless") != null - * && System - * .getProperty("java.awt.headless").equals("true")) - */) + if (file == null) { JalviewFileChooser chooser = getHTMLChooser(); @@ -96,17 +90,36 @@ public class HtmlSvgOutput } printUnwrapped(aDimension.getWidth(), aDimension.getHeight(), 0, g1, g2); - FileOutputStream out = new FileOutputStream(file); String titleSvgData = g1.getSVGDocument(); String alignSvgData = g2.getSVGDocument(); - String htmlData = getHtml(titleSvgData, alignSvgData); - + String jsonData = null; + boolean isEmbbedBioJSON = Boolean.valueOf(jalview.bin.Cache + .getDefault("EXPORT_EMBBED_BIOJSON", "true")); + if (isEmbbedBioJSON) + { + AlignmentExportData exportData = ap.alignFrame.getAlignmentForExport( + JSONFile.FILE_DESC, av); + if (exportData.getSettings().isCancelled()) + { + return; + } + jsonData = new FormatAdapter(ap, exportData.getSettings()) + .formatSequences(JSONFile.FILE_DESC, exportData + .getAlignment(), exportData.getOmitHidden(), + exportData.getStartEndPostions(), ap + .getAlignViewport().getColumnSelection()); + } + String htmlData = getHtml(titleSvgData, alignSvgData, jsonData); + FileOutputStream out = new FileOutputStream(file); out.write(htmlData.getBytes()); out.flush(); out.close(); - + if (!(System.getProperty("java.awt.headless") != null && System + .getProperty("java.awt.headless").equals("true"))) + { jalview.util.BrowserLauncher.openURL("file:///" + file); + } } catch (Exception e) { e.printStackTrace(); @@ -254,18 +267,77 @@ public class HtmlSvgOutput return Printable.PAGE_EXISTS; } - private String getHtml(String titleSvg, String alignmentSvg) + private String getHtml(String titleSvg, String alignmentSvg, + String jsonData) { StringBuilder htmlSvg = new StringBuilder(); - htmlSvg.append("" - + "
" - + "
"); - htmlSvg.append(titleSvg); - htmlSvg.append("
").append(alignmentSvg); + htmlSvg.append("\n"); + if (jsonData != null) + { + htmlSvg.append(""); + htmlSvg.append(""); + } + htmlSvg.append("\n"); + htmlSvg.append("
"); + htmlSvg.append( +"
"); + htmlSvg.append( +"
") + .append(titleSvg) + .append("
") + .append("
\n\n\n\n"); + htmlSvg.append( +"
"); + htmlSvg.append( + "
") + .append(alignmentSvg) +.append("
") + .append("
"); htmlSvg.append("
"); + + htmlSvg.append("\n" + + "\n" + + "\n"); + + // javascript for launching file in Jalview + + htmlSvg.append("\n"); + htmlSvg.append(""); return htmlSvg.toString(); } }