import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Rectangle;
+import java.io.File;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import jalview.datamodel.SearchResultsI;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
+import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormatException;
+import jalview.io.FileFormatI;
+import jalview.io.FileFormats;
+import jalview.io.FileLoader;
+import jalview.io.IdentifyFile;
import jalview.renderer.ResidueShader;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ColourSchemeProperty;
}
/**
+ * Load a File into this AlignViewport attempting to detect format if not
+ * given or given as null.
+ *
+ * @param file
+ * @param format
+ */
+ 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)
+ {
+ try
+ {
+ format = new IdentifyFile().identify(file, protocol);
+ } catch (FileFormatException e1)
+ {
+ jalview.bin.Console.error("Unknown file format for '" + file + "'");
+ }
+ }
+ else if (FileFormats.getInstance().isIdentifiable(format))
+ {
+ try
+ {
+ format = new IdentifyFile().identify(file, protocol);
+ } catch (FileFormatException e)
+ {
+ jalview.bin.Console.error("Unknown file format for '" + file + "'",
+ e);
+ }
+ }
+
+ new FileLoader().LoadFile(this, file, DataSourceType.FILE, format,
+ async);
+ }
+
+ public void addFile(File file)
+ {
+ addFile(file, null);
+ }
+
+ /**
* Show a dialog with the option to open and link (cDNA <-> protein) as a new
* alignment, either as a standalone alignment or in a split frame. Returns
* true if the new alignment was opened, false if not, because the user
* in reverse order)
*/
JvOptionPane dialog = JvOptionPane.newOptionDialog(Desktop.desktop)
- .setResponseHandler(0, new Runnable()
- {
- @Override
- public void run()
- {
- addDataToAlignment(al);
- }
- }).setResponseHandler(1, new Runnable()
- {
- @Override
- public void run()
- {
- us.openLinkedAlignmentAs(al, title, true);
- }
- }).setResponseHandler(2, new Runnable()
- {
- @Override
- public void run()
- {
- us.openLinkedAlignmentAs(al, title, false);
- }
+ .setResponseHandler(0, () -> {
+ addDataToAlignment(al);
+ }).setResponseHandler(1, () -> {
+ us.openLinkedAlignmentAs(al, title, true);
+ }).setResponseHandler(2, () -> {
+ us.openLinkedAlignmentAs(al, title, false);
});
dialog.showDialog(question,
MessageManager.getString("label.open_split_window"),
{
this.viewName = viewName;
}
+
}