From 5874ca652d08909c74d422552eb03a996112316d Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Thu, 11 May 2006 13:53:49 +0000 Subject: [PATCH] Recently loaded files, urls, append sequences to Alignment --- src/jalview/bin/Jalview.java | 2 +- src/jalview/datamodel/Alignment.java | 25 +++-- src/jalview/gui/AlignFrame.java | 32 +++--- src/jalview/gui/CutAndPasteTransfer.java | 20 +++- src/jalview/gui/Desktop.java | 69 ++++++++----- src/jalview/io/FileLoader.java | 164 +++++++++++++++++++++--------- src/jalview/io/JalviewFileChooser.java | 69 ++++++++++++- src/jalview/jbgui/GAlignFrame.java | 48 +++++++++ src/jalview/jbgui/GDesktop.java | 12 +-- 9 files changed, 326 insertions(+), 115 deletions(-) diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index 3e8018b..bdfe3ae 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -252,7 +252,7 @@ public class Jalview else { format = new jalview.io.IdentifyFile().Identify(file, protocol); - desktop.LoadFile(file, protocol, format); + new jalview.io.FileLoader().LoadFile(file, protocol, format); } } } diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index c62d707..f3d17b4 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -96,22 +96,21 @@ public class Alignment implements AlignmentI */ public void addSequence(SequenceI snew) { - sequences.addElement(snew); - } + if(dataset!=null) + { + Sequence ds = new Sequence(snew.getName(), + AlignSeq.extractGaps("-. ", snew.getSequence()), + snew.getStart(), + snew.getEnd()); - /** - * DOCUMENT ME! - * - * @param seq DOCUMENT ME! - */ - public void addSequence(SequenceI[] seq) - { - for (int i = 0; i < seq.length; i++) - { - addSequence(seq[i]); - } + snew.setDatasetSequence(ds); + getDataset().addSequence(ds); + } + + sequences.addElement(snew); } + /** Adds a sequence to the alignment. Recalculates maxLength and size. * * @param snew diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 151eb5e..4b1f1f1 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -200,6 +200,22 @@ public class AlignFrame { new SequenceFetcher(this); } + + public void addFromFile_actionPerformed(ActionEvent e) + { + Desktop.instance.inputLocalFileMenuItem_actionPerformed(viewport.alignment); + } + + public void addFromText_actionPerformed(ActionEvent e) + { + Desktop.instance.inputTextboxMenuItem_actionPerformed(viewport.alignment); + } + + public void addFromURL_actionPerformed(ActionEvent e) + { + Desktop.instance.inputURLMenuItem_actionPerformed(viewport.alignment); + } + /** * DOCUMENT ME! * @@ -716,22 +732,6 @@ public class AlignFrame sequences[i].getEnd()); alignment.addSequence(newseq); - if(sequences[i].getDatasetSequence()==null) - { - //////////////////////////// - //Datset needs extension; - ///////////////////////////// - Sequence ds = new Sequence(sequences[i].getName(), - AlignSeq.extractGaps("-. ", sequences[i].getSequence()), - sequences[i].getStart(), - sequences[i].getEnd()); - newseq.setDatasetSequence(ds); - alignment.getDataset().addSequence(ds); - } - else - { - newseq.setDatasetSequence(sequences[i].getDatasetSequence()); - } } viewport.setEndSeq(alignment.getHeight()); alignment.getWidth(); diff --git a/src/jalview/gui/CutAndPasteTransfer.java b/src/jalview/gui/CutAndPasteTransfer.java index 7a3eb98..5d48ea3 100755 --- a/src/jalview/gui/CutAndPasteTransfer.java +++ b/src/jalview/gui/CutAndPasteTransfer.java @@ -40,6 +40,8 @@ import javax.swing.*; public class CutAndPasteTransfer extends GCutAndPasteTransfer { + AlignmentI addToThisAlignment; + public CutAndPasteTransfer() { SwingUtilities.invokeLater(new Runnable() @@ -55,9 +57,10 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer /** * DOCUMENT ME! */ - public void setForInput() + public void setForInput(AlignmentI alignment) { - getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH); + addToThisAlignment = alignment; + getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH); } /** @@ -147,20 +150,29 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer if (sequences != null) { + if(addToThisAlignment!=null) + { + for(int i=0; i 0)) + else { - af = new AlignFrame(new Alignment(sequences)); - af.currentFileFormat = format; - af.statusBar.setText("Successfully loaded file " + file); - - Desktop.addInternalFrame(af, file, AlignFrame.NEW_WINDOW_WIDTH, - AlignFrame.NEW_WINDOW_HEIGHT); + String errorMessage = AppletFormatAdapter.SUPPORTED_FORMATS; + if (FormatAdapter.formats.contains(format)) + { + try + { + sequences = new FormatAdapter().readFile(file, protocol, format); + } + catch (java.io.IOException ex) + { + errorMessage = ex.getMessage(); + } + } - try + if ( (sequences != null) && (sequences.length > 0)) { - af.setMaximum(jalview.bin.Cache.getDefault("SHOW_FULLSCREEN", false)); + if(alignment!=null) + { + for(int i=0; i