*/
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;
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;
}
/**