*/
public void addFile(File file, FileFormatI format)
{
+ addFile(file, format, true);
+ }
+
+ public void addFile(File file, FileFormatI format, boolean async)
+ {
DataSourceType protocol = AppletFormatAdapter.checkProtocol(file);
if (format == null)
}
}
- new FileLoader().LoadFile(this, file, DataSourceType.FILE, format);
+ new FileLoader().LoadFile(this, file, DataSourceType.FILE, format,
+ async);
}
public void addFile(File file)
JvOptionPane dialog = JvOptionPane.newOptionDialog(Desktop.desktop)
.setResponseHandler(0, () -> {
addDataToAlignment(al);
- return null;
}).setResponseHandler(1, () -> {
us.openLinkedAlignmentAs(al, title, true);
- return null;
}).setResponseHandler(2, () -> {
us.openLinkedAlignmentAs(al, title, false);
- return null;
});
dialog.showDialog(question,
MessageManager.getString("label.open_split_window"),
AlignmentI thisAlignment = newWindowOrSplitPane
? new Alignment(getAlignment())
: getAlignment();
- AlignmentI protein = al.isNucleotide() ? thisAlignment : al;
- final AlignmentI cdna = al.isNucleotide() ? al : thisAlignment;
-
- /*
- * Map sequences. At least one should get mapped as we have already passed
- * the test for 'mappability'. Any mappings made will be added to the
- * protein alignment. Note creating dataset sequences on the new alignment
- * is a pre-requisite for building mappings.
- */
+
+ // always create dataset for imported alignment before doing anything else..
al.setDataset(null);
- AlignmentUtils.mapProteinAlignmentToCdna(protein, cdna);
+
+ if (!al.isNucleotide() && !thisAlignment.isNucleotide())
+ {
+ // link AA to 3di or other kind of 'alternative' 1:1 mapping alignment
+ AlignmentUtils.map3diPeptideToProteinAligment(thisAlignment,al);
+ }
+ else
+ {
+ // link CODON triplets to Protein
+ AlignmentI protein = al.isNucleotide() ? thisAlignment : al;
+ final AlignmentI cdna = al.isNucleotide() ? al : thisAlignment;
+
+ /*
+ * Map sequences. At least one should get mapped as we have already passed
+ * the test for 'mappability'. Any mappings made will be added to the
+ * protein alignment. Note creating dataset sequences on the new alignment
+ * is a pre-requisite for building mappings.
+ */
+ AlignmentUtils.mapProteinAlignmentToCdna(protein, cdna);
+ }
+
/*
* Create the AlignFrame for the added alignment. If it is protein, mappings
* are registered with StructureSelectionManager as a side-effect.
if (newWindowOrSplitPane)
{
al.alignAs(thisAlignment);
- protein = openSplitFrame(newAlignFrame, thisAlignment);
+ AlignmentI mapped = openSplitFrame(newAlignFrame, thisAlignment);
}
}
*/
protected boolean noReferencesTo(AlignedCodonFrame acf)
{
- AlignFrame[] frames = Desktop.getAlignFrames();
+ AlignFrame[] frames = Desktop.getDesktopAlignFrames();
if (frames == null)
{
return true;
{
this.viewName = viewName;
}
+
}