Can specify PDB chain to map sequence to - only used by applet so far
[jalview.git] / src / jalview / appletgui / CutAndPasteTransfer.java
index 9f12b87..78d7ba7 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2007 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
@@ -25,20 +25,24 @@ import java.awt.event.*;
 import jalview.datamodel.*;\r
 import jalview.io.*;\r
 \r
-public class CutAndPasteTransfer extends Panel implements ActionListener, MouseListener\r
+public class CutAndPasteTransfer\r
+    extends Panel implements ActionListener, MouseListener\r
 {\r
   boolean pdbImport = false;\r
   boolean treeImport = false;\r
   boolean annotationImport = false;\r
-  Sequence seq;\r
+  Sequence  seq;\r
   AlignFrame alignFrame;\r
 \r
   public CutAndPasteTransfer(boolean forImport, AlignFrame alignFrame)\r
   {\r
-    try {\r
-        jbInit();\r
-    } catch (Exception e) {\r
-        e.printStackTrace();\r
+    try\r
+    {\r
+      jbInit();\r
+    }\r
+    catch (Exception e)\r
+    {\r
+      e.printStackTrace();\r
     }\r
 \r
     this.alignFrame = alignFrame;\r
@@ -81,15 +85,20 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, MouseL
     addSequences.setVisible(false);\r
   }\r
 \r
-\r
   public void actionPerformed(ActionEvent evt)\r
   {\r
-    if(evt.getSource()==accept)\r
+    if (evt.getSource() == accept)\r
+    {\r
       ok(true);\r
-    else if(evt.getSource() == addSequences)\r
+    }\r
+    else if (evt.getSource() == addSequences)\r
+    {\r
       ok(false);\r
-    else if(evt.getSource() == cancel)\r
+    }\r
+    else if (evt.getSource() == cancel)\r
+    {\r
       cancel();\r
+    }\r
   }\r
 \r
   protected void ok(boolean newWindow)\r
@@ -97,35 +106,53 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, MouseL
     String text = getText();\r
     int length = text.length();\r
     textarea.append("\n");\r
-    if(textarea.getText().length()==length)\r
+    if (textarea.getText().length() == length)\r
     {\r
-      String warning = "\n\n#################################################\n"\r
-          +"WARNING!! THIS IS THE MAXIMUM SIZE OF TEXTAREA!!\n"\r
-          +"\nCAN'T INPUT FULL ALIGNMENT"\r
-          +"\n\nYOU MUST DELETE THIS WARNING TO CONTINUE"\r
-          +"\n\nMAKE SURE LAST SEQUENCE PASTED IS COMPLETE"\r
-          +"\n#################################################\n";\r
-      textarea.setText(text.substring(0, text.length()-warning.length())\r
-          +warning);\r
+      String warning =\r
+          "\n\n#################################################\n"\r
+          + "WARNING!! THIS IS THE MAXIMUM SIZE OF TEXTAREA!!\n"\r
+          + "\nCAN'T INPUT FULL ALIGNMENT"\r
+          + "\n\nYOU MUST DELETE THIS WARNING TO CONTINUE"\r
+          + "\n\nMAKE SURE LAST SEQUENCE PASTED IS COMPLETE"\r
+          + "\n#################################################\n";\r
+      textarea.setText(text.substring(0, text.length() - warning.length())\r
+                       + warning);\r
 \r
       textarea.setCaretPosition(text.length());\r
     }\r
 \r
-    if(pdbImport)\r
+    if (pdbImport)\r
     {\r
-      new MCview.AppletPDBViewer(text, AppletFormatAdapter.PASTE,\r
-                                 seq,\r
-                                 alignFrame.getSeqcanvas());\r
+      PDBEntry pdb = new PDBEntry();\r
+      pdb.setFile(text);\r
+\r
+      if ( alignFrame.alignPanel.av.applet.jmolAvailable )\r
+        new jalview.appletgui.AppletJmol(pdb,\r
+                                         new Sequence[]{seq},\r
+                                         null,\r
+                                         alignFrame.alignPanel,\r
+                                         AppletFormatAdapter.PASTE);\r
+      else\r
+\r
+        new MCview.AppletPDBViewer(pdb,\r
+                                   new Sequence[]{seq},\r
+                                   null,\r
+                                   alignFrame.alignPanel,\r
+                                   AppletFormatAdapter.PASTE);\r
+\r
     }\r
-    else if(treeImport)\r
+    else if (treeImport)\r
     {\r
-      try{\r
+      try\r
+      {\r
         jalview.io.NewickFile fin = new jalview.io.NewickFile(textarea.getText(),\r
             "Paste");\r
 \r
         fin.parse();\r
-        if(fin.getTree()!=null)\r
+        if (fin.getTree() != null)\r
+        {\r
           alignFrame.loadTree(fin, "Pasted tree file");\r
+        }\r
 \r
       }\r
       catch (Exception ex)\r
@@ -134,7 +161,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, MouseL
         return;\r
       }\r
     }\r
-    else if(annotationImport)\r
+    else if (annotationImport)\r
     {\r
       if (new AnnotationFile().readAnnotationFile(\r
           alignFrame.viewport.alignment, textarea.getText(),\r
@@ -150,23 +177,25 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, MouseL
                                      jalview.io.AppletFormatAdapter.PASTE);\r
       }\r
     }\r
-    else if(alignFrame!=null)\r
+    else if (alignFrame != null)\r
     {\r
       Alignment al = null;\r
 \r
-      String format = new IdentifyFile().Identify(text, AppletFormatAdapter.PASTE);\r
-      try{\r
-        al = new AppletFormatAdapter().readFile(text, AppletFormatAdapter.PASTE, format);\r
-      }catch(java.io.IOException ex)\r
+      String format = new IdentifyFile().Identify(text,\r
+                                                  AppletFormatAdapter.PASTE);\r
+      try\r
+      {\r
+        al = new AppletFormatAdapter().readFile(text, AppletFormatAdapter.PASTE,\r
+                                                format);\r
+      }\r
+      catch (java.io.IOException ex)\r
       {\r
         ex.printStackTrace();\r
       }\r
 \r
-\r
-\r
       if (al != null)\r
       {\r
-        if(newWindow)\r
+        if (newWindow)\r
         {\r
           AlignFrame af = new AlignFrame(al, alignFrame.viewport.applet,\r
                                          "Cut & Paste input - " + format,\r
@@ -174,23 +203,33 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, MouseL
           af.statusBar.setText("Successfully pasted alignment file");\r
         }\r
         else\r
+        {\r
           alignFrame.addSequences(al.getSequencesArray());\r
+        }\r
       }\r
     }\r
 \r
-   if(this.getParent() instanceof Frame)\r
-    ((Frame)this.getParent()).setVisible(false);\r
-   else\r
-     ((Dialog)this.getParent()).setVisible(false);\r
+    if (this.getParent() instanceof Frame)\r
+    {\r
+      ( (Frame)this.getParent()).setVisible(false);\r
+    }\r
+    else\r
+    {\r
+      ( (Dialog)this.getParent()).setVisible(false);\r
+    }\r
   }\r
 \r
   protected void cancel()\r
   {\r
     textarea.setText("");\r
-    if(this.getParent() instanceof Frame)\r
-     ((Frame)this.getParent()).setVisible(false);\r
+    if (this.getParent() instanceof Frame)\r
+    {\r
+      ( (Frame)this.getParent()).setVisible(false);\r
+    }\r
     else\r
-     ((Dialog)this.getParent()).setVisible(false);\r
+    {\r
+      ( (Dialog)this.getParent()).setVisible(false);\r
+    }\r
   }\r
 \r
   protected TextArea textarea = new TextArea();\r
@@ -201,29 +240,40 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, MouseL
   protected Panel buttonPanel = new Panel();\r
   BorderLayout borderLayout1 = new BorderLayout();\r
 \r
-\r
-  private void jbInit() throws Exception {\r
-      textarea.setFont(new java.awt.Font("Monospaced", Font.PLAIN, 10));\r
-      textarea.setText("Paste your alignment file here");\r
-      textarea.addMouseListener(this);\r
-      this.setLayout(borderLayout1);\r
-      accept.addActionListener(this);\r
-      addSequences.addActionListener(this);\r
-      cancel.addActionListener(this);\r
-      this.add(buttonPanel, BorderLayout.SOUTH);\r
-      buttonPanel.add(accept, null);\r
-      buttonPanel.add(addSequences);\r
-      buttonPanel.add(cancel, null);\r
-      this.add(textarea, java.awt.BorderLayout.CENTER);\r
+  private void jbInit()\r
+      throws Exception\r
+  {\r
+    textarea.setFont(new java.awt.Font("Monospaced", Font.PLAIN, 10));\r
+    textarea.setText("Paste your alignment file here");\r
+    textarea.addMouseListener(this);\r
+    this.setLayout(borderLayout1);\r
+    accept.addActionListener(this);\r
+    addSequences.addActionListener(this);\r
+    cancel.addActionListener(this);\r
+    this.add(buttonPanel, BorderLayout.SOUTH);\r
+    buttonPanel.add(accept, null);\r
+    buttonPanel.add(addSequences);\r
+    buttonPanel.add(cancel, null);\r
+    this.add(textarea, java.awt.BorderLayout.CENTER);\r
   }\r
 \r
-  public void mousePressed(MouseEvent evt) {\r
-      if (textarea.getText().startsWith("Paste your")) {\r
-          textarea.setText("");\r
-     }\r
+  public void mousePressed(MouseEvent evt)\r
+  {\r
+    if (textarea.getText().startsWith("Paste your"))\r
+    {\r
+      textarea.setText("");\r
+    }\r
   }\r
-  public void mouseReleased(MouseEvent evt){}\r
-  public void mouseClicked(MouseEvent evt){}\r
-  public void mouseEntered(MouseEvent evt){}\r
-  public void mouseExited(MouseEvent evt){}\r
+\r
+  public void mouseReleased(MouseEvent evt)\r
+  {}\r
+\r
+  public void mouseClicked(MouseEvent evt)\r
+  {}\r
+\r
+  public void mouseEntered(MouseEvent evt)\r
+  {}\r
+\r
+  public void mouseExited(MouseEvent evt)\r
+  {}\r
 }\r