43ec65e42d0c72724626ed8597c9db04bfeff902
[jalview.git] / src / jalview / appletgui / 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 \r
20 package jalview.appletgui;\r
21 \r
22 import java.awt.*;\r
23 import java.awt.event.*;\r
24 \r
25 import jalview.datamodel.*;\r
26 import jalview.io.*;\r
27 import jalview.jbappletgui.*;\r
28 \r
29 public class CutAndPasteTransfer\r
30     extends GCutAndPasteTransfer\r
31 {\r
32   jalview.bin.JalviewLite applet;\r
33 \r
34   boolean pdbImport = false;\r
35   Sequence seq;\r
36   SeqCanvas seqcanvas;\r
37 \r
38   public CutAndPasteTransfer(boolean forImport, jalview.bin.JalviewLite mainApplet)\r
39   {\r
40     super();\r
41     applet = mainApplet;\r
42 \r
43     if (!forImport)\r
44     {\r
45       buttonPanel.setVisible(false);\r
46     }\r
47   }\r
48 \r
49   public void setPDBImport(Sequence seq, SeqCanvas seqcanvas)\r
50   {\r
51     this.seq = seq;\r
52     this.seqcanvas = seqcanvas;\r
53     pdbImport = true;\r
54   }\r
55 \r
56 \r
57   public String getText()\r
58   {\r
59     return textarea.getText();\r
60   }\r
61 \r
62   public void setText(String text)\r
63   {\r
64     textarea.setText(text);\r
65   }\r
66 \r
67   protected void ok_actionPerformed(ActionEvent e)\r
68   {\r
69     String text = getText();\r
70     int length = text.length();\r
71     textarea.append("\n");\r
72     if(textarea.getText().length()==length)\r
73     {\r
74       String warning = "\n\n#################################################\n"\r
75           +"WARNING!! THIS IS THE MAXIMUM SIZE OF TEXTAREA!!\n"\r
76           +"\nCAN'T INPUT FULL ALIGNMENT"\r
77           +"\n\nYOU MUST DELETE THIS WARNING TO CONTINUE"\r
78           +"\n\nMAKE SURE LAST SEQUENCE PASTED IS COMPLETE"\r
79           +"\n#################################################\n";\r
80       textarea.setText(text.substring(0, text.length()-warning.length())\r
81           +warning);\r
82 \r
83       textarea.setCaretPosition(text.length());\r
84       return;\r
85     }\r
86 \r
87     if(pdbImport)\r
88     {\r
89       new MCview.AppletPDBViewer(text, seq, seqcanvas);\r
90     }\r
91     else\r
92     {\r
93       SequenceI[] sequences = null;\r
94 \r
95       String format = IdentifyFile.Identify(text, "Paste");\r
96       sequences = new AppletFormatAdapter().readFile(text, "Paste", format);\r
97 \r
98       if (sequences != null)\r
99       {\r
100         AlignFrame af = new AlignFrame(new Alignment(sequences), applet,\r
101                                        "Cut & Paste input - " + format);\r
102         af.statusBar.setText("Successfully pasted alignment file");\r
103       }\r
104     }\r
105     Frame frame = (Frame)this.getParent();\r
106     frame.setVisible(false);\r
107   }\r
108 \r
109   protected void cancel_actionPerformed(ActionEvent e)\r
110   {\r
111     Frame frame = (Frame)this.getParent();\r
112     frame.setVisible(false);\r
113   }\r
114 \r
115 }\r