-/********************
- * 2004 Jalview Reengineered
- * Barton Group
- * Dundee University
- *
- * AM Waterhouse
- *******************/
-
-package jalview.gui;
-
-import jalview.jbgui.GCutAndPasteTransfer;
-import java.awt.*;
-
-public class CutAndPasteTransfer extends GCutAndPasteTransfer
-{
-
- public String getText()
- {
- return textarea.getText();
- }
-
- public void setText(String text)
- {
- textarea.setText(text);
- }
-}
+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer\r
+ * Copyright (C) 2005 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
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\r
+ */\r
+package jalview.gui;\r
+\r
+import jalview.datamodel.*;\r
+\r
+import jalview.io.*;\r
+\r
+import jalview.jbgui.*;\r
+\r
+import java.awt.*;\r
+import java.awt.datatransfer.*;\r
+import java.awt.event.*;\r
+\r
+import javax.swing.*;\r
+\r
+\r
+/**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
+public class CutAndPasteTransfer extends GCutAndPasteTransfer\r
+{\r
+\r
+ public CutAndPasteTransfer()\r
+ {\r
+ SwingUtilities.invokeLater(new Runnable()\r
+ {\r
+ public void run()\r
+ {\r
+ textarea.requestFocus();\r
+ }\r
+ });\r
+\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ */\r
+ public void setForInput()\r
+ {\r
+ getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH);\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public String getText()\r
+ {\r
+ return textarea.getText();\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param text DOCUMENT ME!\r
+ */\r
+ public void setText(String text)\r
+ {\r
+ textarea.setText(text);\r
+ }\r
+\r
+ public void appendText(String text)\r
+ {\r
+ textarea.append(text);\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param e DOCUMENT ME!\r
+ */\r
+ public void copyItem_actionPerformed(ActionEvent e)\r
+ {\r
+ textarea.getSelectedText();\r
+ Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
+ c.setContents(new StringSelection(textarea.getSelectedText()), null);\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param e DOCUMENT ME!\r
+ */\r
+ public void pasteMenu_actionPerformed(ActionEvent e)\r
+ {\r
+ Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
+ Transferable contents = c.getContents(this);\r
+\r
+ if (contents == null)\r
+ {\r
+ return;\r
+ }\r
+\r
+ try\r
+ {\r
+ textarea.append((String) contents.getTransferData(\r
+ DataFlavor.stringFlavor));\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ }\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param e DOCUMENT ME!\r
+ */\r
+ public void ok_actionPerformed(ActionEvent e)\r
+ {\r
+ String format = IdentifyFile.Identify(getText(), "Paste");\r
+ SequenceI[] sequences = null;\r
+\r
+ if (FormatAdapter.formats.contains(format))\r
+ {\r
+ sequences = new FormatAdapter().readFile(getText(), "Paste", format);\r
+ }\r
+\r
+ if (sequences != null)\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
+ af.statusBar.setText("Successfully pasted alignment file");\r
+\r
+ try\r
+ {\r
+ af.setMaximum( jalview.bin.Cache.getDefault("SHOW_FULLSCREEN", false));\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ }\r
+\r
+ try\r
+ {\r
+ this.setClosed(true);\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ }\r
+ }\r
+ else\r
+ {\r
+ JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
+ "Couldn't read the pasted text.\n" +\r
+ "Formats currently supported are\n" +\r
+ "Fasta, MSF, Clustal, BLC, PIR, MSP, and PFAM",\r
+ "Error parsing text", JOptionPane.WARNING_MESSAGE);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param e DOCUMENT ME!\r
+ */\r
+ public void cancel_actionPerformed(ActionEvent e)\r
+ {\r
+ try\r
+ {\r
+ this.setClosed(true);\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ }\r
+ }\r
+\r
+ public void textarea_mousePressed(MouseEvent e)\r
+ {\r
+ if(SwingUtilities.isRightMouseButton(e))\r
+ {\r
+ JPopupMenu popup = new JPopupMenu("Edit");\r
+ JMenuItem item = new JMenuItem("Copy");\r
+ item.addActionListener(new ActionListener()\r
+ {public void actionPerformed(ActionEvent e)\r
+ {\r
+ copyItem_actionPerformed(e);\r
+ }\r
+ });\r
+ popup.add(item);\r
+ item = new JMenuItem("Paste");\r
+ item.addActionListener(new ActionListener()\r
+ {public void actionPerformed(ActionEvent e)\r
+ {\r
+ pasteMenu_actionPerformed(e);\r
+ }\r
+ });\r
+ popup.add(item);\r
+ popup.show(this, e.getX(), e.getY()+textarea.getY()+30);\r
+\r
+ }\r
+ }\r
+\r
+}\r