Recently loaded files, urls, append sequences to Alignment
authoramwaterhouse <Andrew Waterhouse>
Thu, 11 May 2006 13:53:49 +0000 (13:53 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 11 May 2006 13:53:49 +0000 (13:53 +0000)
src/jalview/bin/Jalview.java
src/jalview/datamodel/Alignment.java
src/jalview/gui/AlignFrame.java
src/jalview/gui/CutAndPasteTransfer.java
src/jalview/gui/Desktop.java
src/jalview/io/FileLoader.java
src/jalview/io/JalviewFileChooser.java
src/jalview/jbgui/GAlignFrame.java
src/jalview/jbgui/GDesktop.java

index 3e8018b..bdfe3ae 100755 (executable)
@@ -252,7 +252,7 @@ public class Jalview
             else\r
             {\r
               format = new jalview.io.IdentifyFile().Identify(file, protocol);\r
-              desktop.LoadFile(file, protocol, format);\r
+              new jalview.io.FileLoader().LoadFile(file, protocol, format);\r
             }\r
           }\r
     }\r
index c62d707..f3d17b4 100755 (executable)
@@ -96,22 +96,21 @@ public class Alignment implements AlignmentI
      */\r
     public void addSequence(SequenceI snew)\r
     {\r
-        sequences.addElement(snew);\r
-    }\r
+      if(dataset!=null)\r
+      {\r
+        Sequence ds = new Sequence(snew.getName(),\r
+                                   AlignSeq.extractGaps("-. ", snew.getSequence()),\r
+                                   snew.getStart(),\r
+                                   snew.getEnd());\r
 \r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @param seq DOCUMENT ME!\r
-     */\r
-    public void addSequence(SequenceI[] seq)\r
-    {\r
-        for (int i = 0; i < seq.length; i++)\r
-        {\r
-            addSequence(seq[i]);\r
-        }\r
+        snew.setDatasetSequence(ds);\r
+        getDataset().addSequence(ds);\r
+      }\r
+\r
+      sequences.addElement(snew);\r
     }\r
 \r
+\r
     /** Adds a sequence to the alignment.  Recalculates maxLength and size.\r
      *\r
      * @param snew\r
index 151eb5e..4b1f1f1 100755 (executable)
@@ -200,6 +200,22 @@ public class AlignFrame
   {\r
     new SequenceFetcher(this);\r
   }\r
+\r
+  public void addFromFile_actionPerformed(ActionEvent e)\r
+  {\r
+    Desktop.instance.inputLocalFileMenuItem_actionPerformed(viewport.alignment);\r
+  }\r
+\r
+  public void addFromText_actionPerformed(ActionEvent e)\r
+  {\r
+    Desktop.instance.inputTextboxMenuItem_actionPerformed(viewport.alignment);\r
+  }\r
+\r
+  public void addFromURL_actionPerformed(ActionEvent e)\r
+  {\r
+    Desktop.instance.inputURLMenuItem_actionPerformed(viewport.alignment);\r
+  }\r
+\r
   /**\r
    * DOCUMENT ME!\r
    *\r
@@ -716,22 +732,6 @@ public class AlignFrame
               sequences[i].getEnd());\r
 \r
           alignment.addSequence(newseq);\r
-          if(sequences[i].getDatasetSequence()==null)\r
-          {\r
-             ////////////////////////////\r
-            //Datset needs extension;\r
-            /////////////////////////////\r
-            Sequence ds = new Sequence(sequences[i].getName(),\r
-                                       AlignSeq.extractGaps("-. ", sequences[i].getSequence()),\r
-                                       sequences[i].getStart(),\r
-                                       sequences[i].getEnd());\r
-            newseq.setDatasetSequence(ds);\r
-            alignment.getDataset().addSequence(ds);\r
-          }\r
-          else\r
-          {\r
-            newseq.setDatasetSequence(sequences[i].getDatasetSequence());\r
-          }\r
         }\r
         viewport.setEndSeq(alignment.getHeight());\r
         alignment.getWidth();\r
index 7a3eb98..5d48ea3 100755 (executable)
@@ -40,6 +40,8 @@ import javax.swing.*;
 public class CutAndPasteTransfer extends GCutAndPasteTransfer\r
 {\r
 \r
+  AlignmentI addToThisAlignment;\r
+\r
   public CutAndPasteTransfer()\r
   {\r
     SwingUtilities.invokeLater(new Runnable()\r
@@ -55,9 +57,10 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
     /**\r
      * DOCUMENT ME!\r
      */\r
-    public void setForInput()\r
+    public void setForInput(AlignmentI alignment)\r
     {\r
-        getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH);\r
+      addToThisAlignment = alignment;\r
+      getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH);\r
     }\r
 \r
     /**\r
@@ -147,20 +150,29 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
 \r
         if (sequences != null)\r
         {\r
+          if(addToThisAlignment!=null)\r
+          {\r
+            for(int i=0; i<sequences.length; i++)\r
+              addToThisAlignment.addSequence(sequences[i]);\r
+          }\r
+          else\r
+          {\r
             AlignFrame af = new AlignFrame(new Alignment(sequences));\r
             af.currentFileFormat = format;\r
             Desktop.addInternalFrame(af, "Cut & Paste input - " + format,\r
-                AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT);\r
+                                     AlignFrame.NEW_WINDOW_WIDTH,\r
+                                     AlignFrame.NEW_WINDOW_HEIGHT);\r
             af.statusBar.setText("Successfully pasted alignment file");\r
 \r
             try\r
             {\r
-                af.setMaximum( jalview.bin.Cache.getDefault("SHOW_FULLSCREEN", false));\r
+              af.setMaximum(jalview.bin.Cache.getDefault("SHOW_FULLSCREEN", false));\r
             }\r
             catch (Exception ex)\r
             {\r
             }\r
 \r
+          }\r
             try\r
             {\r
                 this.setClosed(true);\r
index ab686ff..fdb19d5 100755 (executable)
@@ -24,6 +24,7 @@ import java.awt.*;
 import java.awt.datatransfer.*;\r
 import java.awt.dnd.*;\r
 import java.awt.event.*;\r
+import java.util.*;\r
 \r
 import javax.swing.*;\r
 \r
@@ -322,7 +323,10 @@ public class Desktop extends jalview.jbgui.GDesktop
                 format = new IdentifyFile().Identify(file,\r
                                                           protocol);\r
               }\r
-              LoadFile(file, protocol, format);\r
+\r
+\r
+              new FileLoader().LoadFile(file, protocol, format);\r
+\r
             }\r
           }\r
           catch (Exception ex)\r
@@ -337,7 +341,7 @@ public class Desktop extends jalview.jbgui.GDesktop
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    public void inputLocalFileMenuItem_actionPerformed(ActionEvent e)\r
+    public void inputLocalFileMenuItem_actionPerformed(jalview.datamodel.AlignmentI alignment)\r
     {\r
         JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.getProperty(\r
                     "LAST_DIRECTORY"),\r
@@ -366,46 +370,53 @@ public class Desktop extends jalview.jbgui.GDesktop
             String format = null;\r
             if (chooser.getSelectedFormat().equals("Jalview"))\r
             {\r
-              format = "Jalview";\r
+                format = "Jalview";\r
             }\r
             else\r
             {\r
                 format = new IdentifyFile().Identify(choice, FormatAdapter.FILE);\r
             }\r
 \r
-            jalview.bin.Cache.setProperty("DEFAULT_FILE_FORMAT", format);\r
-            LoadFile(choice, FormatAdapter.FILE, format);\r
+            if (alignment != null)\r
+              new FileLoader().LoadFile(alignment, choice, FormatAdapter.FILE, format);\r
+            else\r
+              new FileLoader().LoadFile(choice, FormatAdapter.FILE, format);\r
         }\r
     }\r
 \r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @param file DOCUMENT ME!\r
-     * @param protocol DOCUMENT ME!\r
-     * @param format DOCUMENT ME!\r
-     */\r
-    public void LoadFile(String file, String protocol, String format)\r
-    {\r
-      FileLoader fileLoader = new FileLoader();\r
-      fileLoader.LoadFile(file, protocol, format);\r
-    }\r
+\r
 \r
     /**\r
      * DOCUMENT ME!\r
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    public void inputURLMenuItem_actionPerformed(ActionEvent e)\r
+    public void inputURLMenuItem_actionPerformed(jalview.datamodel.AlignmentI alignment)\r
     {\r
       // This construct allows us to have a wider textfield\r
       // for viewing\r
       JLabel label = new JLabel("Enter URL of Input File");\r
-      JTextField textinput = new JTextField("http://www.", 40);\r
+      final JComboBox history = new JComboBox();\r
       JPanel panel = new JPanel(new BorderLayout());\r
       panel.add(label, BorderLayout.NORTH);\r
-      panel.add(textinput, BorderLayout.SOUTH);\r
+      panel.add(history, BorderLayout.CENTER);\r
+      history.setPreferredSize(new Dimension(400,20));\r
+      history.setEditable(true);\r
+      history.addItem("http://www.");\r
+\r
+      String historyItems = jalview.bin.Cache.getProperty("RECENT_URL");\r
+\r
+      StringTokenizer st;\r
+\r
+      if (historyItems != null)\r
+      {\r
+        st = new StringTokenizer(historyItems, "\t");\r
 \r
+        while (st.hasMoreTokens())\r
+        {\r
+          history.addItem(st.nextElement());\r
+        }\r
+      }\r
 \r
        int reply = JOptionPane.showInternalConfirmDialog(desktop,\r
           panel, "Input Alignment From URL",\r
@@ -417,16 +428,17 @@ public class Desktop extends jalview.jbgui.GDesktop
             return;\r
         }\r
 \r
-        String url = textinput.getText();\r
+        String url = history.getSelectedItem().toString();\r
 \r
         if (url.toLowerCase().endsWith(".jar"))\r
         {\r
-               jalview.bin.Cache.setProperty("DEFAULT_FILE_FORMAT", "Jalview");\r
-               new Jalview2XML().LoadJalviewAlign(url);\r
+          if (alignment != null)\r
+            new FileLoader().LoadFile(alignment, url, FormatAdapter.URL, "Jalview");\r
+          else\r
+            new FileLoader().LoadFile(url, FormatAdapter.URL, "Jalview");\r
         }\r
         else\r
         {\r
-\r
           String format = new IdentifyFile().Identify(url, FormatAdapter.URL);\r
 \r
           if (format.equals("URL NOT FOUND"))\r
@@ -439,7 +451,10 @@ public class Desktop extends jalview.jbgui.GDesktop
             return;\r
           }\r
 \r
-          LoadFile(url, FormatAdapter.URL, format);\r
+          if (alignment != null)\r
+            new FileLoader().LoadFile(alignment, url, FormatAdapter.URL, format);\r
+          else\r
+            new FileLoader().LoadFile(url, FormatAdapter.URL, format);\r
         }\r
     }\r
 \r
@@ -448,10 +463,10 @@ public class Desktop extends jalview.jbgui.GDesktop
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    public void inputTextboxMenuItem_actionPerformed(ActionEvent e)\r
+    public void inputTextboxMenuItem_actionPerformed(jalview.datamodel.AlignmentI alignment)\r
     {\r
         CutAndPasteTransfer cap = new CutAndPasteTransfer();\r
-        cap.setForInput();\r
+        cap.setForInput(alignment);\r
         Desktop.addInternalFrame(cap, "Cut & Paste Alignment File", 600, 500);\r
     }\r
 \r
index a3ef237..1785e89 100755 (executable)
@@ -22,22 +22,43 @@ package jalview.io;
 import jalview.gui.AlignFrame;\r
 import jalview.gui.Jalview2XML;\r
 import javax.swing.JOptionPane;\r
-import jalview.datamodel.Alignment;\r
+import jalview.datamodel.*;\r
 import jalview.gui.Desktop;\r
 import jalview.datamodel.SequenceI;\r
+import java.util.Vector;\r
+import java.util.StringTokenizer;\r
 \r
 public class FileLoader\r
 {\r
+  String file;\r
+  String protocol;\r
+  String format;\r
+  AlignmentI alignment;\r
+\r
+  public void LoadFile(AlignmentI alignment, String file, String protocol, String format)\r
+  {\r
+    this.alignment = alignment;\r
+    LoadFile(file, protocol, format);\r
+  }\r
+\r
   public void LoadFile(String file, String protocol, String format)\r
   {\r
-    LoadingThread loader = new LoadingThread(file, protocol, format);\r
+    this.file = file;\r
+    this.protocol = protocol;\r
+    this.format = format;\r
+\r
+    LoadingThread loader = new LoadingThread();\r
     loader.start();\r
   }\r
 \r
   public AlignFrame LoadFileWaitTillLoaded(String file, String protocol,\r
                                                   String format)\r
   {\r
-    LoadingThread loader = new LoadingThread(file, protocol, format);\r
+    this.file = file;\r
+    this.protocol = protocol;\r
+    this.format = format;\r
+\r
+    LoadingThread loader = new LoadingThread();\r
     loader.start();\r
     while (loader.isAlive())\r
     {\r
@@ -53,71 +74,120 @@ public class FileLoader
   }\r
 \r
 \r
-  class LoadingThread\r
-    extends Thread\r
-{\r
-  String file;\r
-  String protocol;\r
-  String format;\r
-  AlignFrame af;\r
 \r
-  public LoadingThread(String file, String protocol, String format)\r
+  public void updateRecentlyOpened()\r
   {\r
-    this.file = file;\r
-    this.protocol = protocol;\r
-    this.format = format;\r
-  }\r
+    Vector recent = new Vector();\r
 \r
-  public void run()\r
-  {\r
-    SequenceI[] sequences = null;\r
+    String type = protocol.equals(FormatAdapter.FILE)\r
+        ? "RECENT_FILE" : "RECENT_URL";\r
+\r
+    String historyItems = jalview.bin.Cache.getProperty(type);\r
 \r
-    if (format.equalsIgnoreCase("Jalview"))\r
+    StringTokenizer st;\r
+\r
+    if (historyItems != null)\r
     {\r
-      af = new Jalview2XML().LoadJalviewAlign(file);\r
+      st = new StringTokenizer(historyItems, "\t");\r
+\r
+      while (st.hasMoreTokens())\r
+      {\r
+        recent.addElement(st.nextElement().toString().trim());\r
+      }\r
+    }\r
+\r
+    if (recent.contains(file))\r
+    {\r
+      recent.remove(file);\r
+    }\r
+\r
+    StringBuffer newHistory = new StringBuffer(file);\r
+    for (int i = 0; i < recent.size() && i < 10; i++)\r
+    {\r
+      newHistory.append("\t");\r
+      newHistory.append(recent.elementAt(i));\r
     }\r
-    else\r
+\r
+    jalview.bin.Cache.setProperty(type, newHistory.toString());\r
+\r
+    if(type.equals(FormatAdapter.FILE))\r
+      jalview.bin.Cache.setProperty("DEFAULT_FILE_FORMAT", format);\r
+  }\r
+\r
+\r
+  class LoadingThread\r
+      extends Thread\r
+  {\r
+\r
+    AlignFrame af;\r
+\r
+\r
+    public void run()\r
     {\r
-      String errorMessage = AppletFormatAdapter.SUPPORTED_FORMATS;\r
+      SequenceI[] sequences = null;\r
 \r
-      if (FormatAdapter.formats.contains(format))\r
+      if (format.equalsIgnoreCase("Jalview"))\r
       {\r
-        try{\r
-          sequences = new FormatAdapter().readFile(file, protocol, format);\r
-        }catch(java.io.IOException ex)\r
-        {\r
-          errorMessage = ex.getMessage();\r
-        }\r
+        af = new Jalview2XML().LoadJalviewAlign(file);\r
       }\r
-\r
-      if ( (sequences != null) && (sequences.length > 0))\r
+      else\r
       {\r
-        af = new AlignFrame(new Alignment(sequences));\r
-        af.currentFileFormat = format;\r
-        af.statusBar.setText("Successfully loaded file " + file);\r
-\r
-        Desktop.addInternalFrame(af, file, AlignFrame.NEW_WINDOW_WIDTH,\r
-                           AlignFrame.NEW_WINDOW_HEIGHT);\r
+        String errorMessage = AppletFormatAdapter.SUPPORTED_FORMATS;\r
 \r
+        if (FormatAdapter.formats.contains(format))\r
+        {\r
+          try\r
+          {\r
+            sequences = new FormatAdapter().readFile(file, protocol, format);\r
+          }\r
+          catch (java.io.IOException ex)\r
+          {\r
+            errorMessage = ex.getMessage();\r
+          }\r
+        }\r
 \r
-        try\r
+        if ( (sequences != null) && (sequences.length > 0))\r
         {\r
-          af.setMaximum(jalview.bin.Cache.getDefault("SHOW_FULLSCREEN", false));\r
+          if(alignment!=null)\r
+          {\r
+            for(int i=0; i<sequences.length; i++)\r
+              alignment.addSequence(sequences[i]);\r
+          }\r
+          else\r
+          {\r
+            af = new AlignFrame(new Alignment(sequences));\r
+            af.currentFileFormat = format;\r
+            af.statusBar.setText("Successfully loaded file " + file);\r
+\r
+            Desktop.addInternalFrame(af, file, AlignFrame.NEW_WINDOW_WIDTH,\r
+                                     AlignFrame.NEW_WINDOW_HEIGHT);\r
+\r
+            try\r
+            {\r
+              af.setMaximum(jalview.bin.Cache.getDefault("SHOW_FULLSCREEN", false));\r
+            }\r
+            catch (java.beans.PropertyVetoException ex)\r
+            {\r
+            }\r
+          }\r
+\r
         }\r
-        catch (Exception ex)\r
+        else\r
         {\r
+          JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
+                                                "Couldn't load file " + file +\r
+                                                "\n"\r
+                                                + errorMessage,\r
+                                                "Error loading file",\r
+                                                JOptionPane.WARNING_MESSAGE);\r
         }\r
       }\r
-      else\r
+\r
+      if (af != null)\r
       {\r
-        JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
-                                              "Couldn't load file "+file+"\n"\r
-                                              +errorMessage,\r
-                                              "Error loading file",\r
-                                              JOptionPane.WARNING_MESSAGE);\r
+        updateRecentlyOpened();\r
       }\r
     }\r
   }\r
-}\r
 \r
 }\r
index 2bac0de..b04a705 100755 (executable)
@@ -23,6 +23,8 @@ package jalview.io;
 import java.io.*;\r
 import java.awt.*;\r
 import javax.swing.*;\r
+import java.awt.event.*;\r
+import java.util.*;\r
 \r
 public class JalviewFileChooser\r
     extends JFileChooser\r
@@ -31,6 +33,7 @@ public class JalviewFileChooser
   public JalviewFileChooser(String dir)\r
   {\r
     super(dir);\r
+    setAccessory(new RecentlyOpened());\r
   }\r
 \r
   public JalviewFileChooser(String dir, String[] suffix, String[] desc,\r
@@ -55,8 +58,10 @@ public class JalviewFileChooser
     {\r
       setFileFilter(chosen);\r
     }\r
+    setAccessory(new RecentlyOpened());\r
   }\r
 \r
+\r
   public void setFileFilter(javax.swing.filechooser.FileFilter filter)\r
   {\r
     super.setFileFilter(filter);\r
@@ -91,7 +96,6 @@ public class JalviewFileChooser
     }\r
   }\r
 \r
-\r
   public String getSelectedFormat()\r
   {\r
     if(getFileFilter()==null)\r
@@ -136,6 +140,8 @@ public class JalviewFileChooser
   public int showSaveDialog(Component parent)\r
       throws HeadlessException\r
   {\r
+    this.setAccessory(null);\r
+\r
     setDialogType(SAVE_DIALOG);\r
 \r
     int ret = showDialog(parent, null);\r
@@ -168,7 +174,68 @@ public class JalviewFileChooser
 \r
     return ret;\r
   }\r
+\r
+  void recentListSelectionChanged(String selection)\r
+  {\r
+    setSelectedFile(null);\r
+\r
+    File file = new File(selection);\r
+    if (getFileFilter() instanceof JalviewFileFilter)\r
+    {\r
+      JalviewFileFilter jvf = (JalviewFileFilter)this.getFileFilter();\r
+\r
+      if (!jvf.accept(file))\r
+      {\r
+        setFileFilter(getChoosableFileFilters()[0]);\r
+      }\r
+    }\r
+\r
+     setSelectedFile( file );\r
+  }\r
+\r
+  class RecentlyOpened extends JPanel\r
+  {\r
+    JList list;\r
+    public RecentlyOpened()\r
+    {\r
+      String historyItems = jalview.bin.Cache.getProperty("RECENT_FILE");\r
+      StringTokenizer st;\r
+      Vector recent = new Vector();\r
+\r
+      if (historyItems != null)\r
+      {\r
+        st = new StringTokenizer(historyItems, "\t");\r
+\r
+        while (st.hasMoreTokens())\r
+        {\r
+          recent.addElement(st.nextElement());\r
+        }\r
+      }\r
+\r
+      list = new JList(recent);\r
+      list.addMouseListener(new MouseAdapter()\r
+          {\r
+            public void mousePressed(MouseEvent evt)\r
+            {\r
+              recentListSelectionChanged(list.getSelectedValue().toString());\r
+            }\r
+          });\r
+\r
+      this.setBorder(new javax.swing.border.TitledBorder("Recently Opened"));\r
+\r
+      JScrollPane scroller = new JScrollPane(list);\r
+      scroller.setPreferredSize(new Dimension(250, 200));\r
+      this.add(scroller);\r
+      scroller.getHorizontalScrollBar()\r
+          .setValue(scroller.getHorizontalScrollBar().getMaximum()\r
+          );\r
+\r
+    }\r
+\r
+  }\r
 }\r
 \r
 \r
 \r
+\r
+\r
index f5df999..14975b7 100755 (executable)
@@ -125,6 +125,10 @@ public class GAlignFrame
 \r
   JMenuItem associatedData = new JMenuItem();\r
   protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem();\r
+  JMenu addSequenceMenu = new JMenu();\r
+  JMenuItem addFromFile = new JMenuItem();\r
+  JMenuItem addFromText = new JMenuItem();\r
+  JMenuItem addFromURL = new JMenuItem();\r
   public GAlignFrame()\r
   {\r
 \r
@@ -988,6 +992,31 @@ public class GAlignFrame
         autoCalculate_actionPerformed(e);\r
       }\r
     });\r
+    addSequenceMenu.setText("Add Sequences");\r
+    addFromFile.setText("From File");\r
+    addFromFile.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        addFromFile_actionPerformed(e);\r
+      }\r
+    });\r
+    addFromText.setText("From Textbox");\r
+    addFromText.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        addFromText_actionPerformed(e);\r
+      }\r
+    });\r
+    addFromURL.setText("From URL");\r
+    addFromURL.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        addFromURL_actionPerformed(e);\r
+      }\r
+    });\r
     alignFrameMenuBar.add(fileMenu);\r
     alignFrameMenuBar.add(editMenu);\r
     alignFrameMenuBar.add(searchMenu);\r
@@ -995,6 +1024,7 @@ public class GAlignFrame
     alignFrameMenuBar.add(colourMenu);\r
     alignFrameMenuBar.add(calculateMenu);\r
     alignFrameMenuBar.add(webService);\r
+    fileMenu.add(addSequenceMenu);\r
     fileMenu.add(fetchSequence);\r
     fileMenu.addSeparator();\r
     fileMenu.add(vamsasStore);\r
@@ -1091,6 +1121,9 @@ public class GAlignFrame
     jMenu2.add(htmlMenuItem);\r
     jMenu2.add(epsFile);\r
     jMenu2.add(createPNG);\r
+    addSequenceMenu.add(addFromFile);\r
+    addSequenceMenu.add(addFromText);\r
+    addSequenceMenu.add(addFromURL);\r
   }\r
 \r
   protected void outputText_actionPerformed(ActionEvent e)\r
@@ -1419,4 +1452,19 @@ public class GAlignFrame
   {\r
 \r
   }\r
+\r
+  public void addFromFile_actionPerformed(ActionEvent e)\r
+  {\r
+\r
+  }\r
+\r
+  public void addFromText_actionPerformed(ActionEvent e)\r
+  {\r
+\r
+  }\r
+\r
+  public void addFromURL_actionPerformed(ActionEvent e)\r
+  {\r
+\r
+  }\r
 }\r
index 63f1836..b16c99e 100755 (executable)
@@ -83,7 +83,7 @@ public class GDesktop extends JFrame
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    inputLocalFileMenuItem_actionPerformed(e);\r
+                    inputLocalFileMenuItem_actionPerformed(null);\r
                 }\r
             });\r
         inputURLMenuItem.setMnemonic('U');\r
@@ -92,7 +92,7 @@ public class GDesktop extends JFrame
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    inputURLMenuItem_actionPerformed(e);\r
+                    inputURLMenuItem_actionPerformed(null);\r
                 }\r
             });\r
         inputTextboxMenuItem.setMnemonic('C');\r
@@ -101,7 +101,7 @@ public class GDesktop extends JFrame
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    inputTextboxMenuItem_actionPerformed(e);\r
+                    inputTextboxMenuItem_actionPerformed(null);\r
                 }\r
             });\r
         quit.setMnemonic('Q');\r
@@ -203,7 +203,7 @@ public class GDesktop extends JFrame
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void inputLocalFileMenuItem_actionPerformed(ActionEvent e)\r
+    protected void inputLocalFileMenuItem_actionPerformed(jalview.datamodel.AlignmentI al)\r
     {\r
     }\r
 \r
@@ -212,7 +212,7 @@ public class GDesktop extends JFrame
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void inputURLMenuItem_actionPerformed(ActionEvent e)\r
+    protected void inputURLMenuItem_actionPerformed(jalview.datamodel.AlignmentI al)\r
     {\r
     }\r
 \r
@@ -221,7 +221,7 @@ public class GDesktop extends JFrame
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void inputTextboxMenuItem_actionPerformed(ActionEvent e)\r
+    protected void inputTextboxMenuItem_actionPerformed(jalview.datamodel.AlignmentI al)\r
     {\r
     }\r
 \r