2.08, not 2.07
[jalview.git] / src / jalview / gui / CutAndPasteTransfer.java
index 175a609..7a3eb98 100755 (executable)
  */\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
-import jalview.datamodel.*;\r
-import jalview.io.*;\r
-import jalview.jbgui.*;\r
 \r
-public class CutAndPasteTransfer\r
-    extends GCutAndPasteTransfer\r
+/**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
+public class CutAndPasteTransfer extends GCutAndPasteTransfer\r
 {\r
-  public void setForInput()\r
-  {\r
-    getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH);\r
-  }\r
-\r
-  public String getText()\r
-  {\r
-    return textarea.getText();\r
-  }\r
 \r
-  public void setText(String text)\r
+  public CutAndPasteTransfer()\r
   {\r
-    textarea.setText(text);\r
-  }\r
+    SwingUtilities.invokeLater(new Runnable()\r
+    {\r
+      public void run()\r
+      {\r
+        textarea.requestFocus();\r
+      }\r
+    });\r
 \r
-  public void copyItem_actionPerformed(ActionEvent e)\r
-  {\r
-    Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
-    c.setContents(new StringSelection(textarea.getText()), null);\r
   }\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
+     * DOCUMENT ME!\r
+     */\r
+    public void setForInput()\r
     {\r
-      return;\r
+        getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH);\r
     }\r
 \r
-    try\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public String getText()\r
     {\r
-      textarea.setText( (String) contents.getTransferData(\r
-          DataFlavor.stringFlavor));\r
+        return textarea.getText();\r
     }\r
-    catch (Exception ex)\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
 \r
-  public void ok_actionPerformed(ActionEvent e)\r
-  {\r
-    String format = IdentifyFile.Identify(getText(), "Paste");\r
-    SequenceI[] sequences = null;\r
+    public void appendText(String text)\r
+    {\r
+      textarea.append(text);\r
+    }\r
 \r
-    if (FormatAdapter.formats.contains(format))\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param e DOCUMENT ME!\r
+     */\r
+    public void copyItem_actionPerformed(ActionEvent e)\r
     {\r
-      sequences = FormatAdapter.readFile(getText(), "Paste", format);\r
+        textarea.getSelectedText();\r
+        Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
+        c.setContents(new StringSelection(textarea.getSelectedText()), null);\r
     }\r
 \r
-    if (sequences != null)\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param e DOCUMENT ME!\r
+     */\r
+    public void pasteMenu_actionPerformed(ActionEvent e)\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,\r
-                               AlignFrame.NEW_WINDOW_HEIGHT);\r
-      af.statusBar.setText("Successfully pasted alignment file");\r
-\r
-      try\r
-      {\r
-        af.setMaximum(Preferences.showFullscreen);\r
-      }\r
-      catch (Exception ex)\r
-      {\r
-      }\r
+        Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
+        Transferable contents = c.getContents(this);\r
 \r
-      try\r
-      {\r
-        this.setClosed(true);\r
-      }\r
-      catch (Exception ex)\r
-      {\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
-    else\r
+\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param e DOCUMENT ME!\r
+     */\r
+    public void ok_actionPerformed(ActionEvent e)\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",\r
-                                            JOptionPane.WARNING_MESSAGE);\r
+        String format = new IdentifyFile().Identify(getText(), "Paste");\r
+        SequenceI[] sequences = null;\r
+\r
+        if (FormatAdapter.formats.contains(format))\r
+        {\r
+          try{\r
+            sequences = new FormatAdapter().readFile(getText(), "Paste", format);\r
+          }catch(java.io.IOException ex)\r
+          {\r
+            JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
+                                                  "Couldn't read the pasted text.\n" +ex.toString(),\r
+                                                  "Error parsing text",\r
+                                                  JOptionPane.WARNING_MESSAGE);\r
+          }\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
     }\r
-  }\r
 \r
-  public void cancel_actionPerformed(ActionEvent e)\r
-  {\r
-    try\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param e DOCUMENT ME!\r
+     */\r
+    public void cancel_actionPerformed(ActionEvent e)\r
     {\r
-      this.setClosed(true);\r
+        try\r
+        {\r
+            this.setClosed(true);\r
+        }\r
+        catch (Exception ex)\r
+        {\r
+        }\r
     }\r
-    catch (Exception ex)\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()+10, e.getY()+textarea.getY()+40);\r
+\r
+      }\r
     }\r
-  }\r
+\r
 }\r