transfer and update of sequenceFeatures for associated alignment sequence
[jalview.git] / src / MCview / AppletPDBViewer.java
index c3063a8..ce2083a 100755 (executable)
@@ -1,3 +1,21 @@
+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer\r
+ * Copyright (C) 2006 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 MCview;\r
 \r
 import java.awt.*;\r
@@ -5,22 +23,18 @@ import java.awt.*;
 import java.awt.event.*;\r
 import jalview.datamodel.*;\r
 import jalview.appletgui.*;\r
+import jalview.schemes.*;\r
 import java.awt.event.ActionListener;\r
 import java.awt.event.ActionEvent;\r
 \r
 \r
-public class AppletPDBViewer extends Frame\r
+public class AppletPDBViewer extends Frame implements ActionListener, ItemListener\r
 {\r
-      PDBEntry pdb;\r
-      Sequence sequence;\r
       AppletPDBCanvas pdbcanvas;\r
-\r
-\r
       public AppletPDBViewer(String pdbtext,String type,\r
                        Sequence seq,\r
                        SeqCanvas seqcanvas)\r
       {\r
-        sequence = seq;\r
 \r
         try\r
         {\r
@@ -35,7 +49,7 @@ public class AppletPDBViewer extends Frame
 \r
         add(pdbcanvas, BorderLayout.CENTER);\r
 \r
-        StringBuffer title = new StringBuffer(sequence.getName() + ":");\r
+        StringBuffer title = new StringBuffer(seq.getName() + ":");\r
 \r
         jalview.bin.JalviewLite.addFrame(this,title.toString(),400, 400);\r
 \r
@@ -44,104 +58,124 @@ public class AppletPDBViewer extends Frame
         pdbcanvas.setPDBFile(pdbfile);\r
         }\r
         catch(Exception ex){\r
+          ex.printStackTrace();\r
           pdbcanvas.errorLoading = true;\r
           pdbcanvas.repaint();\r
         }\r
       }\r
 \r
+      public void actionPerformed(ActionEvent evt)\r
+      {\r
+        if(evt.getSource()==mapping)\r
+               mapping_actionPerformed();\r
+       else if(evt.getSource()==wire)\r
+               wire_actionPerformed();\r
+       else if(evt.getSource()==depth)\r
+               depth_actionPerformed();\r
+       else if(evt.getSource()==zbuffer)\r
+               zbuffer_actionPerformed();\r
+       else if(evt.getSource()==charge)\r
+               charge_actionPerformed();\r
+\r
+       else if(evt.getSource()==chain)\r
+               chain_actionPerformed();\r
+       else if(evt.getSource()==seqButton)\r
+               seqButton_actionPerformed();\r
+       else if(evt.getSource()==zappo)\r
+                pdbcanvas.setColours(new ZappoColourScheme());\r
+       else if(evt.getSource()==taylor)\r
+               pdbcanvas.setColours(new TaylorColourScheme());\r
+      else if(evt.getSource()==hydro)\r
+               pdbcanvas.setColours(new HydrophobicColourScheme());\r
+      else if(evt.getSource()==helix)\r
+               pdbcanvas.setColours(new HelixColourScheme());\r
+       else if(evt.getSource()==strand)\r
+               pdbcanvas.setColours(new StrandColourScheme());\r
+       else if(evt.getSource()==turn)\r
+               pdbcanvas.setColours(new TurnColourScheme());\r
+       else if(evt.getSource()==buried)\r
+              pdbcanvas.setColours(new BuriedColourScheme());\r
+       else if(evt.getSource()==user)\r
+       {\r
+         pdbcanvas.bysequence = false;\r
+         new jalview.appletgui.UserDefinedColours(pdbcanvas);\r
+       }\r
+      }\r
+\r
+      public void itemStateChanged(ItemEvent evt)\r
+      {\r
+        if (evt.getSource() == allchains)\r
+          allchains_itemStateChanged();\r
+        else if (evt.getSource() == wire)\r
+          wire_actionPerformed();\r
+        else if (evt.getSource() == depth)\r
+          depth_actionPerformed();\r
+        else if (evt.getSource() == zbuffer)\r
+          zbuffer_actionPerformed();\r
+      }\r
+\r
 \r
       private void jbInit()\r
           throws Exception\r
       {\r
-        this.setMenuBar(jMenuBar1);\r
+        setMenuBar(jMenuBar1);\r
         fileMenu.setLabel("File");\r
         coloursMenu.setLabel("Colours");\r
         mapping.setLabel("View Mapping");\r
-        mapping.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e)\r
-          {\r
-            mapping_actionPerformed();\r
-          }\r
-        });\r
+        mapping.addActionListener(this);\r
         wire.setLabel("Wireframe");\r
-        wire.addItemListener(new ItemListener()\r
-        {\r
-          public void itemStateChanged(ItemEvent e)\r
-          {\r
-            wire_actionPerformed();\r
-          }\r
-        });\r
+        wire.addItemListener(this);\r
         depth.setState(true);\r
         depth.setLabel("Depthcue");\r
-        depth.addItemListener(new ItemListener()\r
-        {\r
-          public void itemStateChanged(ItemEvent e)\r
-          {\r
-            depth_actionPerformed();\r
-          }\r
-        });\r
+        depth.addItemListener(this);\r
         zbuffer.setState(true);\r
         zbuffer.setLabel("Z Buffering");\r
-        zbuffer.addItemListener(new ItemListener()\r
-        {\r
-          public void itemStateChanged(ItemEvent e)\r
-          {\r
-            zbuffer_actionPerformed();\r
-          }\r
-        });\r
+        zbuffer.addItemListener(this);\r
         charge.setLabel("Charge & Cysteine");\r
-        charge.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e)\r
-          {\r
-            charge_actionPerformed();\r
-          }\r
-        });\r
+        charge.addActionListener(this);\r
         hydro.setLabel("Hydrophobicity");\r
-        hydro.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e)\r
-          {\r
-            hydro_actionPerformed();\r
-          }\r
-        });\r
+        hydro.addActionListener(this);\r
         chain.setLabel("By Chain");\r
-        chain.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e)\r
-          {\r
-            chain_actionPerformed();\r
-          }\r
-        });\r
+        chain.addActionListener(this);\r
         seqButton.setLabel("By Sequence");\r
-        seqButton.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e){\r
-            seqButton_actionPerformed();\r
-          }\r
-        });\r
+        seqButton.addActionListener(this);\r
     allchains.setLabel("All Chains Visible");\r
-    allchains.addItemListener(new ItemListener()\r
-    {\r
-      public void itemStateChanged(ItemEvent itemEvent)\r
-      {\r
-        allchains_itemStateChanged(itemEvent);\r
-      }\r
-    });\r
+    allchains.addItemListener(this);\r
+    viewMenu.setLabel("View");\r
+    zappo.setLabel("Zappo");\r
+    zappo.addActionListener(this);\r
+    taylor.setLabel("Taylor");\r
+    taylor.addActionListener(this);\r
+    helix.setLabel("Helix Propensity");\r
+    helix.addActionListener(this);\r
+    strand.setLabel("Strand Propensity");\r
+    strand.addActionListener(this);\r
+    turn.setLabel("Turn Propensity");\r
+    turn.addActionListener(this);\r
+    buried.setLabel("Buried Index");\r
+    buried.addActionListener(this);\r
+    user.setLabel("User Defined...");\r
+    user.addActionListener(this);\r
     jMenuBar1.add(fileMenu);\r
         jMenuBar1.add(coloursMenu);\r
-        fileMenu.add(mapping);;\r
+    jMenuBar1.add(viewMenu);\r
+    fileMenu.add(mapping);;\r
 \r
         coloursMenu.add(seqButton);\r
         coloursMenu.add(chain);\r
-    coloursMenu.add(hydro);\r
     coloursMenu.add(charge);\r
-    coloursMenu.addSeparator();\r
-        coloursMenu.add(wire);\r
-        coloursMenu.add(depth);\r
-        coloursMenu.add(zbuffer);\r
-    coloursMenu.add(allchains);\r
+    coloursMenu.add(zappo);\r
+    coloursMenu.add(taylor);\r
+    coloursMenu.add(hydro);\r
+    coloursMenu.add(helix);\r
+    coloursMenu.add(strand);\r
+    coloursMenu.add(turn);\r
+    coloursMenu.add(buried);\r
+    coloursMenu.add(user);\r
+    viewMenu.add(wire);\r
+    viewMenu.add(depth);\r
+    viewMenu.add(zbuffer);\r
+    viewMenu.add(allchains);\r
     allchains.setState(true);\r
   }\r
 \r
@@ -160,27 +194,27 @@ public class AppletPDBViewer extends Frame
       MenuItem seqButton = new MenuItem();\r
 \r
      CheckboxMenuItem allchains = new CheckboxMenuItem();\r
+  Menu viewMenu = new Menu();\r
+  MenuItem turn = new MenuItem();\r
+  MenuItem strand = new MenuItem();\r
+  MenuItem helix = new MenuItem();\r
+  MenuItem taylor = new MenuItem();\r
+  MenuItem zappo = new MenuItem();\r
+  MenuItem buried = new MenuItem();\r
+  MenuItem user = new MenuItem();\r
 \r
   public void charge_actionPerformed()\r
       {\r
-        clearButtonGroup();\r
+        pdbcanvas.bysequence = false;\r
         pdbcanvas.pdb.setChargeColours();\r
         pdbcanvas.redrawneeded=true;\r
         pdbcanvas.repaint();\r
       }\r
 \r
-      public void hydro_actionPerformed()\r
-      {\r
-        clearButtonGroup();\r
-        pdbcanvas.pdb.setHydrophobicityColours();\r
-        pdbcanvas.redrawneeded=true;\r
-        pdbcanvas.repaint();\r
-      }\r
-\r
       public void chain_actionPerformed()\r
       {\r
-        clearButtonGroup();\r
-        pdbcanvas.pdb.setChainColours();\r
+         pdbcanvas.bysequence = false;\r
+         pdbcanvas.pdb.setChainColours();\r
         pdbcanvas.redrawneeded=true;\r
         pdbcanvas.repaint();\r
       }\r
@@ -208,17 +242,11 @@ public class AppletPDBViewer extends Frame
 \r
       public void seqButton_actionPerformed()\r
       {\r
-        clearButtonGroup();\r
         pdbcanvas.bysequence = true;\r
         pdbcanvas.updateSeqColours();\r
         pdbcanvas.repaint();\r
       }\r
 \r
-      void clearButtonGroup()\r
-      {\r
-       pdbcanvas.bysequence = false;\r
-       pdbcanvas.bymolecule = false;\r
-      }\r
 \r
       public void mapping_actionPerformed()\r
       {\r
@@ -230,8 +258,9 @@ public class AppletPDBViewer extends Frame
         cap.setText(pdbcanvas.mappingDetails.toString());\r
       }\r
 \r
-      public void allchains_itemStateChanged(ItemEvent itemEvent)\r
+      public void allchains_itemStateChanged()\r
       {\r
         pdbcanvas.setAllchainsVisible(allchains.getState());\r
       }\r
+\r
 }\r