*/
String fileName = null;
+ File fileObject;
+
/**
* Creates a new AlignFrame object with specific width and height.
*
Desktop.getDesktop().propertyChange(evt);
}
+
+ /**
+ * BH 2018
+ *
+ * @return true if we have any features
+ */
+ @Override
+ protected boolean haveAlignmentFeatures() {
+ AlignmentI alignment = getViewport().getAlignment();
+
+ for (int i = 0; i < alignment.getHeight(); i++)
+ {
+ SequenceI seq = alignment.getSequenceAt(i);
+ for (String group : seq.getFeatures().getFeatureGroups(true))
+ {
+ if (group != null)return true;
+ }
+ }
+ return false;
+ }
+
/**
* initalise the alignframe from the underlying viewport data and the
* configurations
setFileFormat(format);
reload.setEnabled(true);
}
+
+ /**
+ * JavaScript will have this, maybe others. More dependable than a file name
+ * and maintains a reference to the actual bytes loaded.
+ *
+ * @param file
+ */
+ public void setFileObject(File file) {
+ this.fileObject = file;
+ }
/**
* Add a KeyListener with handlers for various KeyPressed and KeyReleased
FileLoader loader = new FileLoader();
DataSourceType protocol = fileName.startsWith("http:")
- ? DataSourceType.URL
- : DataSourceType.FILE;
+ ? DataSourceType.URL : DataSourceType.FILE;
loader.LoadFile(viewport, fileName, protocol, currentFileFormat);
}
else
Rectangle bounds = this.getBounds();
FileLoader loader = new FileLoader();
- DataSourceType protocol = fileName.startsWith("http:")
- ? DataSourceType.URL
- : DataSourceType.FILE;
- AlignFrame newframe = loader.LoadFileWaitTillLoaded(fileName,
- protocol, currentFileFormat);
+
+ AlignFrame newframe = null;
+
+ if (fileObject == null)
+ {
+
+ DataSourceType protocol = (fileName.startsWith("http:")
+ ? DataSourceType.URL : DataSourceType.FILE);
+ newframe = loader.LoadFileWaitTillLoaded(fileName, protocol,
+ currentFileFormat);
+ }
+ else
+ {
+ newframe = loader.LoadFileWaitTillLoaded(fileObject, DataSourceType.FILE, currentFileFormat);
+ }
newframe.setBounds(bounds);
if (featureSettings != null && featureSettings.isShowing())
@Override
public void saveAs_actionPerformed(ActionEvent e)
{
- // TODO: JAL-3048 JalviewFileChooser - Save option
-
String format = currentFileFormat == null ? null
: currentFileFormat.getName();
final JalviewFileChooser chooser = JalviewFileChooser
@Override
public void associatedData_actionPerformed(ActionEvent e)
{
- JalviewFileChooser chooser = new JalviewFileChooser(
+ final JalviewFileChooser chooser = new JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle(
MessageManager.getString("label.load_jalview_annotations"));
chooser.setToolTipText(
MessageManager.getString("label.load_jalview_annotations"));
-
- Desktop.getDesktop().dialogData = new Object[] { "SelectedFile",
- new Runnable()
+ chooser.response(new RunResponse(JalviewFileChooser.APPROVE_OPTION)
{
@Override
public void run()
{
- Object[] data = Desktop.getDesktop().dialogData;
- int value = ((Integer) data[0]).intValue();
-
- if (value == JFileChooser.APPROVE_OPTION)
- {
- JalviewFileChooser chooser = (JalviewFileChooser) data[2];
- String choice = chooser.getSelectedFile().getPath();
- jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);
- loadJalviewDataFile(choice, null, null, null);
- }
+ String choice = chooser.getSelectedFile().getPath();
+ jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);
+ loadJalviewDataFile(chooser.getSelectedFile(), null, null, null);
}
- }, chooser };
-
- chooser.showOpenDialog(null);
-
-
+ });
+ chooser.openDialog(this);
}
/**
@Override
protected void loadTreeMenuItem_actionPerformed(ActionEvent e)
{
- // TODO: JAL-3048 JalviewFileChooser
// Pick the tree file
JalviewFileChooser chooser = new JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
@Override
protected void loadVcf_actionPerformed()
{
- // TODO: JAL-3048 - No VCF support in JsJalview
JalviewFileChooser chooser = new JalviewFileChooser(
Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle(MessageManager.getString("label.load_vcf_file"));
chooser.setToolTipText(MessageManager.getString("label.load_vcf_file"));
+ final AlignFrame us = this;
+ chooser.response(new RunResponse(JalviewFileChooser.APPROVE_OPTION)
+ {
+ @Override
+ public void run()
+ {
- int value = chooser.showOpenDialog(null);
+ {
+ String choice = chooser.getSelectedFile().getPath();
+ Cache.setProperty("LAST_DIRECTORY", choice);
+ SequenceI[] seqs = viewport.getAlignment().getSequencesArray();
+ new VCFLoader(choice).loadVCF(seqs, us);
+ }
- if (value == JalviewFileChooser.APPROVE_OPTION)
- {
- String choice = chooser.getSelectedFile().getPath();
- Cache.setProperty("LAST_DIRECTORY", choice);
- SequenceI[] seqs = viewport.getAlignment().getSequencesArray();
- new VCFLoader(choice).loadVCF(seqs, this);
- }
+ };
+ }).openDialog(null);
}