JAL-2446 merged to spike branch
[jalview.git] / src / jalview / io / HTMLOutput.java
index ccf1ea4..77006db 100755 (executable)
@@ -1,23 +1,3 @@
-/*
- * 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 <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
 package jalview.io;
 
 import jalview.api.AlignExportSettingI;
@@ -34,8 +14,7 @@ import java.io.InputStreamReader;
 import java.net.URL;
 import java.util.Objects;
 
-
-public abstract class HTMLOutput
+public abstract class HTMLOutput implements Runnable
 {
   protected AlignmentPanel ap;
 
@@ -43,8 +22,6 @@ public abstract class HTMLOutput
 
   protected IProgressIndicator pIndicator;
 
-  private boolean headless;
-
   protected File generatedFile;
 
   public HTMLOutput(AlignmentPanel ap)
@@ -56,60 +33,66 @@ public abstract class HTMLOutput
     }
   }
 
-
   public String getBioJSONData()
   {
+    return getBioJSONData(null);
+  }
+
+  public String getBioJSONData(AlignExportSettingI exportSettings)
+  {
     if (!isEmbedData())
     {
       return null;
     }
-    AlignExportSettingI exportSettings = new AlignExportSettingI()
+    if (exportSettings == null)
     {
-      @Override
-      public boolean isExportHiddenSequences()
-      {
-        return true;
-      }
-
-      @Override
-      public boolean isExportHiddenColumns()
+      exportSettings = new AlignExportSettingI()
       {
-        return true;
-      }
+        @Override
+        public boolean isExportHiddenSequences()
+        {
+          return true;
+        }
 
-      @Override
-      public boolean isExportAnnotations()
-      {
-        return true;
-      }
+        @Override
+        public boolean isExportHiddenColumns()
+        {
+          return true;
+        }
 
-      @Override
-      public boolean isExportFeatures()
-      {
-        return true;
-      }
+        @Override
+        public boolean isExportAnnotations()
+        {
+          return true;
+        }
 
-      @Override
-      public boolean isExportGroups()
-      {
-        return true;
-      }
+        @Override
+        public boolean isExportFeatures()
+        {
+          return true;
+        }
 
-      @Override
-      public boolean isCancelled()
-      {
-        return false;
-      }
+        @Override
+        public boolean isExportGroups()
+        {
+          return true;
+        }
 
-    };
+        @Override
+        public boolean isCancelled()
+        {
+          return false;
+        }
+      };
+    }
     AlignmentExportData exportData = jalview.gui.AlignFrame
-            .getAlignmentForExport(JSONFile.FILE_DESC,
+            .getAlignmentForExport(FileFormat.Json,
                     ap.getAlignViewport(), exportSettings);
     String bioJSON = new FormatAdapter(ap, exportData.getSettings())
-            .formatSequences(JSONFile.FILE_DESC, exportData.getAlignment(),
+            .formatSequences(FileFormat.Json, exportData.getAlignment(),
                     exportData.getOmitHidden(), exportData
-                            .getStartEndPostions(), ap.getAlignViewport()
-                            .getColumnSelection());
+.getStartEndPostions(), ap.getAlignViewport()
+                            .getAlignment().getHiddenColumns());
     return bioJSON;
   }
 
@@ -252,21 +235,19 @@ public abstract class HTMLOutput
   public String getOutputFile() throws NoFileSelectedException
   {
     String selectedFile = null;
-    if (pIndicator != null && !headless)
+    if (pIndicator != null && !isHeadless())
     {
       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" },
+    JalviewFileChooser jvFileChooser = new JalviewFileChooser("html",
             "HTML files");
     jvFileChooser.setFileView(new JalviewFileView());
 
     jvFileChooser.setDialogTitle(MessageManager
-            .getString("label.save_as_biojs_html"));
+            .getString("label.save_as_html"));
     jvFileChooser.setToolTipText(MessageManager.getString("action.save"));
 
     int fileChooserOpt = jvFileChooser.showSaveDialog(null);
@@ -278,9 +259,6 @@ public abstract class HTMLOutput
     }
     else
     {
-      pIndicator.setProgressBar(MessageManager.formatMessage(
-              "status.cancelled_image_export_operation", "BioJS"),
-              pSessionId);
       throw new NoFileSelectedException("No file was selected.");
     }
     return selectedFile;
@@ -288,7 +266,7 @@ public abstract class HTMLOutput
 
   protected void setProgressMessage(String message)
   {
-    if (pIndicator != null && !headless)
+    if (pIndicator != null && !isHeadless())
     {
       pIndicator.setProgressBar(message, pSessionId);
     }
@@ -369,4 +347,4 @@ public abstract class HTMLOutput
    *          the file path of the generated HTML
    */
   public abstract void exportHTML(String outputFile);
-}
+}
\ No newline at end of file