X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fio%2FHtmlSvgOutput.java;h=948578ada34bfa4acef21b0353c48dd5fb38965b;hb=aee4f1ed59e360cfee845b480d6d85550b7e6d82;hp=68f99240238e4c5a76b8113f0da51a3bfe3f6cf7;hpb=81edd609f9841a84d5799d221277d45413a177cf;p=jalview.git
diff --git a/src/jalview/io/HtmlSvgOutput.java b/src/jalview/io/HtmlSvgOutput.java
index 68f9924..948578a 100644
--- a/src/jalview/io/HtmlSvgOutput.java
+++ b/src/jalview/io/HtmlSvgOutput.java
@@ -1,274 +1,307 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.io;
-import jalview.datamodel.SequenceI;
-import jalview.gui.AlignViewport;
+import jalview.exceptions.NoFileSelectedException;
import jalview.gui.AlignmentPanel;
-import jalview.gui.AnnotationPanel;
-import jalview.gui.FeatureRenderer;
import jalview.gui.HTMLOptions;
+import jalview.gui.OOMWarning;
import jalview.math.AlignmentDimension;
import jalview.util.MessageManager;
-import java.awt.Color;
-import java.awt.FontMetrics;
import java.awt.Graphics;
-import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.IOException;
import org.jfree.graphics2d.svg.SVGGraphics2D;
import org.jfree.graphics2d.svg.SVGHints;
-public class HtmlSvgOutput
+public class HtmlSvgOutput extends HTMLOutput
{
- AlignViewport av;
- FeatureRenderer fr;
- AlignmentPanel ap;
+ public HtmlSvgOutput(AlignmentPanel ap)
+ {
+ super(ap);
+ }
- AnnotationPanel annotationPanel;
+ @Override
+ public void exportHTML(String outputFile)
+ {
+ exportStarted();
+ try
+ {
+ if (outputFile == null)
+ {
+ outputFile = getOutputFile();
+ }
+ generatedFile = new File(outputFile);
+ } catch (NoFileSelectedException e)
+ {
+ setProgressMessage(MessageManager.formatMessage(
+ "status.cancelled_image_export_operation", "HTML"));
+ return;
+ } catch (Exception e)
+ {
+ setProgressMessage(MessageManager
+ .formatMessage("info.error_creating_file", "HTML"));
+ e.printStackTrace();
+ return;
+ }
+ new Thread(this).start();
+ }
- public HtmlSvgOutput(File file, AlignmentPanel ap)
+ public int printUnwrapped(int pwidth, int pheight, int pi,
+ Graphics idGraphics, Graphics alignmentGraphics)
+ throws PrinterException
{
+ return ap.printUnwrapped(pwidth, pheight, pi, idGraphics,
+ alignmentGraphics);
+ }
- this.av = ap.av;
- this.ap = ap;
- this.annotationPanel = ap.getAnnotationPanel();
- generateHtmlSvgOutput(file);
+ public int printWrapped(int pwidth, int pheight, int pi, Graphics... pg)
+ throws PrinterException
+ {
+ return ap.printWrappedAlignment(pwidth, pheight, pi, pg[0]);
}
- public void generateHtmlSvgOutput(File file)
+ private String getHtml(String titleSvg, String alignmentSvg,
+ String jsonData, boolean wrapped)
{
- try
+ StringBuilder htmlSvg = new StringBuilder();
+ htmlSvg.append("\n");
+ if (jsonData != null)
{
- if (file == null /*
- * && !(System.getProperty("java.awt.headless") != null
- * && System
- * .getProperty("java.awt.headless").equals("true"))
- */)
- {
+ htmlSvg.append(
+ " ");
+ htmlSvg.append(
+ "");
+ htmlSvg.append(
+ "