added help and documentation for annotation editing.
[jalview.git] / src / jalview / gui / CutAndPasteTransfer.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer\r
3  * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4  *\r
5  * This program is free software; you can redistribute it and/or\r
6  * modify it under the terms of the GNU General Public License\r
7  * as published by the Free Software Foundation; either version 2\r
8  * of the License, or (at your option) any later version.\r
9  *\r
10  * This program is distributed in the hope that it will be useful,\r
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13  * GNU General Public License for more details.\r
14  *\r
15  * You should have received a copy of the GNU General Public License\r
16  * along with this program; if not, write to the Free Software\r
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18  */\r
19 package jalview.gui;\r
20 \r
21 import jalview.datamodel.*;\r
22 \r
23 import jalview.io.*;\r
24 \r
25 import jalview.jbgui.*;\r
26 \r
27 import java.awt.*;\r
28 import java.awt.datatransfer.*;\r
29 import java.awt.event.*;\r
30 \r
31 import javax.swing.*;\r
32 \r
33 \r
34 /**\r
35  * DOCUMENT ME!\r
36  *\r
37  * @author $author$\r
38  * @version $Revision$\r
39  */\r
40 public class CutAndPasteTransfer extends GCutAndPasteTransfer\r
41 {\r
42     /**\r
43      * DOCUMENT ME!\r
44      */\r
45     public void setForInput()\r
46     {\r
47         getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH);\r
48     }\r
49 \r
50     /**\r
51      * DOCUMENT ME!\r
52      *\r
53      * @return DOCUMENT ME!\r
54      */\r
55     public String getText()\r
56     {\r
57         return textarea.getText();\r
58     }\r
59 \r
60     /**\r
61      * DOCUMENT ME!\r
62      *\r
63      * @param text DOCUMENT ME!\r
64      */\r
65     public void setText(String text)\r
66     {\r
67         textarea.setText(text);\r
68     }\r
69 \r
70     /**\r
71      * DOCUMENT ME!\r
72      *\r
73      * @param e DOCUMENT ME!\r
74      */\r
75     public void copyItem_actionPerformed(ActionEvent e)\r
76     {\r
77         Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
78         c.setContents(new StringSelection(textarea.getText()), null);\r
79     }\r
80 \r
81     /**\r
82      * DOCUMENT ME!\r
83      *\r
84      * @param e DOCUMENT ME!\r
85      */\r
86     public void pasteMenu_actionPerformed(ActionEvent e)\r
87     {\r
88         Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
89         Transferable contents = c.getContents(this);\r
90 \r
91         if (contents == null)\r
92         {\r
93             return;\r
94         }\r
95 \r
96         try\r
97         {\r
98             textarea.setText((String) contents.getTransferData(\r
99                     DataFlavor.stringFlavor));\r
100         }\r
101         catch (Exception ex)\r
102         {\r
103         }\r
104     }\r
105 \r
106     /**\r
107      * DOCUMENT ME!\r
108      *\r
109      * @param e DOCUMENT ME!\r
110      */\r
111     public void ok_actionPerformed(ActionEvent e)\r
112     {\r
113         String format = IdentifyFile.Identify(getText(), "Paste");\r
114         SequenceI[] sequences = null;\r
115 \r
116         if (FormatAdapter.formats.contains(format))\r
117         {\r
118             sequences = FormatAdapter.readFile(getText(), "Paste", format);\r
119         }\r
120 \r
121         if (sequences != null)\r
122         {\r
123             AlignFrame af = new AlignFrame(new Alignment(sequences));\r
124             af.currentFileFormat = format;\r
125             Desktop.addInternalFrame(af, "Cut & Paste input - " + format,\r
126                 AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT);\r
127             af.statusBar.setText("Successfully pasted alignment file");\r
128 \r
129             try\r
130             {\r
131                 af.setMaximum(Preferences.showFullscreen);\r
132             }\r
133             catch (Exception ex)\r
134             {\r
135             }\r
136 \r
137             try\r
138             {\r
139                 this.setClosed(true);\r
140             }\r
141             catch (Exception ex)\r
142             {\r
143             }\r
144         }\r
145         else\r
146         {\r
147             JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
148                 "Couldn't read the pasted text.\n" +\r
149                 "Formats currently supported are\n" +\r
150                 "Fasta, MSF, Clustal, BLC, PIR, MSP, and PFAM",\r
151                 "Error parsing text", JOptionPane.WARNING_MESSAGE);\r
152         }\r
153     }\r
154 \r
155     /**\r
156      * DOCUMENT ME!\r
157      *\r
158      * @param e DOCUMENT ME!\r
159      */\r
160     public void cancel_actionPerformed(ActionEvent e)\r
161     {\r
162         try\r
163         {\r
164             this.setClosed(true);\r
165         }\r
166         catch (Exception ex)\r
167         {\r
168         }\r
169     }\r
170 }\r