JAL-3048 JalviewJS compliant use of LineartOptions dialog
[jalview.git] / src / jalview / io / HTMLOutput.java
index 3a7b441..86da67a 100644 (file)
  */
 package jalview.io;
 
-import jalview.api.AlignExportSettingI;
-import jalview.datamodel.AlignExportSettingBeanI;
+import jalview.api.AlignExportSettingsI;
+import jalview.datamodel.AlignExportSettingsAdapter;
 import jalview.datamodel.AlignmentExportData;
 import jalview.exceptions.NoFileSelectedException;
 import jalview.gui.AlignmentPanel;
 import jalview.gui.IProgressIndicator;
 import jalview.util.MessageManager;
 
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
@@ -47,93 +45,44 @@ public abstract class HTMLOutput implements Runnable
 
   protected File generatedFile;
 
+  String _bioJson = null;
+
+  /**
+   * Constructor given an alignment panel (which should not be null)
+   * 
+   * @param ap
+   */
   public HTMLOutput(AlignmentPanel ap)
   {
-    if (ap != null)
-    {
-      this.ap = ap;
-      this.pIndicator = ap.alignFrame;
-    }
+    this.ap = ap;
+    this.pIndicator = ap.alignFrame;
   }
 
-  String _bioJson=null;
+  /**
+   * Gets the BioJSON data as a string, with lazy evaluation (first time called
+   * only). If the output format is configured not to embed BioJSON, returns
+   * null.
+   * 
+   * @return
+   */
   public String getBioJSONData()
   {
-    if (_bioJson==null) {
-      getBioJSONData(null);
-    }
-    return _bioJson;
-  }
-
-  public void getBioJSONData(AlignExportSettingBeanI exportSettings)
-  {
     if (!isEmbedData())
     {
-      return;
+      return null;
     }
-    if (exportSettings == null)
+    if (_bioJson == null)
     {
-      exportSettings = new AlignExportSettingBeanI()
-      {
-        @Override
-        public boolean isExportHiddenSequences()
-        {
-          return true;
-        }
-
-        @Override
-        public boolean isExportHiddenColumns()
-        {
-          return true;
-        }
-
-        @Override
-        public boolean isExportAnnotations()
-        {
-          return true;
-        }
-
-        @Override
-        public boolean isExportFeatures()
-        {
-          return true;
-        }
-
-        @Override
-        public boolean isExportGroups()
-        {
-          return true;
-        }
-
-        @Override
-        public boolean isCancelled()
-        {
-          return false;
-        }
-        
-      };
+      AlignExportSettingsI options = new AlignExportSettingsAdapter(true);
+      AlignmentExportData exportData = ap.getAlignViewport()
+              .getAlignExportData(options);
+      _bioJson = new FormatAdapter(ap, options).formatSequences(
+              FileFormat.Json, exportData.getAlignment(),
+              exportData.getOmitHidden(), exportData.getStartEndPostions(),
+              ap.getAlignViewport().getAlignment().getHiddenColumns());
     }
-    AlignExportSettingI exportDataSettings = jalview.gui.AlignFrame
-            .getAlignmentForExport(FileFormat.Json, ap,
-                    exportSettings);
-    exportDataSettings.addActionListener(new ActionListener()
-    {
-      
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        AlignmentExportData exportData = exportDataSettings.getAlignExportData();
-        _bioJson = new FormatAdapter(ap, exportData.getSettings())
-                .formatSequences(FileFormat.Json, exportData.getAlignment(),
-                        exportData.getOmitHidden(),
-                        exportData.getStartEndPostions(), ap.getAlignViewport()
-                                .getAlignment().getHiddenColumns());
-        
-      }
-    
-      
-    });
-    exportDataSettings.doShowSettings();
+
+    return _bioJson;
   }
 
   /**