Remove redundancy in Eclipse
[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           SwingUtilities.invokeLater(new Runnable()\r
49           {\r
50             public void run()\r
51             {\r
52               textarea.requestFocus();\r
53             }\r
54           });\r
55     }\r
56 \r
57     /**\r
58      * DOCUMENT ME!\r
59      *\r
60      * @return DOCUMENT ME!\r
61      */\r
62     public String getText()\r
63     {\r
64         return textarea.getText();\r
65     }\r
66 \r
67     /**\r
68      * DOCUMENT ME!\r
69      *\r
70      * @param text DOCUMENT ME!\r
71      */\r
72     public void setText(String text)\r
73     {\r
74         textarea.setText(text);\r
75     }\r
76 \r
77     /**\r
78      * DOCUMENT ME!\r
79      *\r
80      * @param e DOCUMENT ME!\r
81      */\r
82     public void copyItem_actionPerformed(ActionEvent e)\r
83     {\r
84         Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
85         c.setContents(new StringSelection(textarea.getText()), null);\r
86     }\r
87 \r
88     /**\r
89      * DOCUMENT ME!\r
90      *\r
91      * @param e DOCUMENT ME!\r
92      */\r
93     public void pasteMenu_actionPerformed(ActionEvent e)\r
94     {\r
95         Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
96         Transferable contents = c.getContents(this);\r
97 \r
98         if (contents == null)\r
99         {\r
100             return;\r
101         }\r
102 \r
103         try\r
104         {\r
105             textarea.append((String) contents.getTransferData(\r
106                     DataFlavor.stringFlavor));\r
107         }\r
108         catch (Exception ex)\r
109         {\r
110         }\r
111     }\r
112 \r
113     /**\r
114      * DOCUMENT ME!\r
115      *\r
116      * @param e DOCUMENT ME!\r
117      */\r
118     public void ok_actionPerformed(ActionEvent e)\r
119     {\r
120         String format = IdentifyFile.Identify(getText(), "Paste");\r
121         SequenceI[] sequences = null;\r
122 \r
123         if (FormatAdapter.formats.contains(format))\r
124         {\r
125             sequences = new FormatAdapter().readFile(getText(), "Paste", format);\r
126         }\r
127 \r
128         if (sequences != null)\r
129         {\r
130             AlignFrame af = new AlignFrame(new Alignment(sequences));\r
131             af.currentFileFormat = format;\r
132             Desktop.addInternalFrame(af, "Cut & Paste input - " + format,\r
133                 AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT);\r
134             af.statusBar.setText("Successfully pasted alignment file");\r
135 \r
136             try\r
137             {\r
138                 af.setMaximum( jalview.bin.Cache.getDefault("SHOW_FULLSCREEN", false));\r
139             }\r
140             catch (Exception ex)\r
141             {\r
142             }\r
143 \r
144             try\r
145             {\r
146                 this.setClosed(true);\r
147             }\r
148             catch (Exception ex)\r
149             {\r
150             }\r
151         }\r
152         else\r
153         {\r
154             JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
155                 "Couldn't read the pasted text.\n" +\r
156                 "Formats currently supported are\n" +\r
157                 "Fasta, MSF, Clustal, BLC, PIR, MSP, and PFAM",\r
158                 "Error parsing text", JOptionPane.WARNING_MESSAGE);\r
159         }\r
160     }\r
161 \r
162     /**\r
163      * DOCUMENT ME!\r
164      *\r
165      * @param e DOCUMENT ME!\r
166      */\r
167     public void cancel_actionPerformed(ActionEvent e)\r
168     {\r
169         try\r
170         {\r
171             this.setClosed(true);\r
172         }\r
173         catch (Exception ex)\r
174         {\r
175         }\r
176     }\r
177 \r
178     public void textarea_mousePressed(MouseEvent e)\r
179     {\r
180       if(SwingUtilities.isRightMouseButton(e))\r
181       {\r
182         JPopupMenu popup = new JPopupMenu("Edit");\r
183         JMenuItem item = new JMenuItem("Copy");\r
184         item.addActionListener(new ActionListener()\r
185             {public void actionPerformed(ActionEvent e)\r
186                   {\r
187                     copyItem_actionPerformed(e);\r
188                   }\r
189             });\r
190         popup.add(item);\r
191         item = new JMenuItem("Paste");\r
192         item.addActionListener(new ActionListener()\r
193             {public void actionPerformed(ActionEvent e)\r
194                   {\r
195                     pasteMenu_actionPerformed(e);\r
196                   }\r
197             });\r
198         popup.add(item);\r
199         popup.show(this, e.getX(), e.getY()+textarea.getY()+30);\r
200 \r
201       }\r
202     }\r
203 \r
204 }\r