boolean for internal copies
[jalview.git] / src / jalview / gui / CutAndPasteTransfer.java
index ba1e85e..4773c26 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
  *\r
  * This program is free software; you can redistribute it and/or\r
  * modify it under the terms of the GNU General Public License\r
@@ -60,6 +60,9 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
     public void setForInput(AlignViewport viewport)\r
     {\r
       this.viewport = viewport;\r
+      if(viewport!=null)\r
+        ok.setText("Add");\r
+\r
       getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH);\r
     }\r
 \r
@@ -88,6 +91,40 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
       textarea.append(text);\r
     }\r
 \r
+\r
+    public void save_actionPerformed(ActionEvent e)\r
+    {\r
+      JalviewFileChooser chooser = new JalviewFileChooser(\r
+          jalview.bin.Cache.getProperty(\r
+              "LAST_DIRECTORY"));\r
+\r
+      chooser.setAcceptAllFileFilterUsed(false);\r
+      chooser.setFileView(new JalviewFileView());\r
+      chooser.setDialogTitle("Save Text to File");\r
+      chooser.setToolTipText("Save");\r
+\r
+      int value = chooser.showSaveDialog(this);\r
+\r
+      if (value == JalviewFileChooser.APPROVE_OPTION)\r
+      {\r
+        try\r
+        {\r
+          java.io.PrintWriter out = new java.io.PrintWriter(\r
+              new java.io.FileWriter(chooser.getSelectedFile()));\r
+\r
+          out.print(getText());\r
+          out.close();\r
+        }\r
+        catch (Exception ex)\r
+        {\r
+          ex.printStackTrace();\r
+        }\r
+\r
+      }\r
+    }\r
+\r
+\r
+\r
     /**\r
      * DOCUMENT ME!\r
      *\r
@@ -133,12 +170,12 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
     public void ok_actionPerformed(ActionEvent e)\r
     {\r
         String format = new IdentifyFile().Identify(getText(), "Paste");\r
-        SequenceI[] sequences = null;\r
+        Alignment al = null;\r
 \r
-        if (FormatAdapter.formats.contains(format))\r
+        if (FormatAdapter.isValidFormat(format))\r
         {\r
           try{\r
-            sequences = new FormatAdapter().readFile(getText(), "Paste", format);\r
+            al = new FormatAdapter().readFile(getText(), "Paste", format);\r
           }catch(java.io.IOException ex)\r
           {\r
             JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
@@ -148,22 +185,24 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
           }\r
         }\r
 \r
-        if (sequences != null)\r
+        if (al != null)\r
         {\r
           if(viewport!=null)\r
           {\r
-            for(int i=0; i<sequences.length; i++)\r
-              viewport.getAlignment().addSequence(sequences[i]);\r
+            for(int i=0; i<al.getHeight(); i++)\r
+              viewport.getAlignment().addSequence(al.getSequenceAt(i));\r
 \r
             viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());\r
           }\r
           else\r
           {\r
-            AlignFrame af = new AlignFrame(new Alignment(sequences));\r
+            AlignFrame af = new AlignFrame(al,\r
+                                           AlignFrame.DEFAULT_WIDTH,\r
+                                           AlignFrame.DEFAULT_HEIGHT);\r
             af.currentFileFormat = format;\r
             Desktop.addInternalFrame(af, "Cut & Paste input - " + format,\r
-                                     AlignFrame.NEW_WINDOW_WIDTH,\r
-                                     AlignFrame.NEW_WINDOW_HEIGHT);\r
+                                     AlignFrame.DEFAULT_WIDTH,\r
+                                     AlignFrame.DEFAULT_HEIGHT);\r
             af.statusBar.setText("Successfully pasted alignment file");\r
 \r
             try\r
@@ -173,15 +212,7 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
             catch (Exception ex)\r
             {\r
             }\r
-\r
           }\r
-            try\r
-            {\r
-                this.setClosed(true);\r
-            }\r
-            catch (Exception ex)\r
-            {\r
-            }\r
         }\r
     }\r
 \r