update author list in license for (JAL-826)
[jalview.git] / src / MCview / AppletPDBViewer.java
index b2931ae..cebd6a9 100755 (executable)
-/*\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 MCview;\r
-\r
-import java.awt.*;\r
-\r
-import java.awt.event.*;\r
-import jalview.datamodel.*;\r
-import jalview.appletgui.*;\r
-import java.awt.event.ActionListener;\r
-import java.awt.event.ActionEvent;\r
-\r
-\r
-public class AppletPDBViewer extends Frame\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
-          jbInit();\r
-        }\r
-        catch (Exception ex)\r
-        {\r
-          ex.printStackTrace();\r
-        }\r
-\r
-        pdbcanvas = new AppletPDBCanvas(seqcanvas, seq);\r
-\r
-        add(pdbcanvas, BorderLayout.CENTER);\r
-\r
-        StringBuffer title = new StringBuffer(sequence.getName() + ":");\r
-\r
-        jalview.bin.JalviewLite.addFrame(this,title.toString(),400, 400);\r
-\r
-        try{\r
-        PDBfile pdbfile = new PDBfile(pdbtext, type);\r
-        pdbcanvas.setPDBFile(pdbfile);\r
-        }\r
-        catch(Exception ex){\r
-          pdbcanvas.errorLoading = true;\r
-          pdbcanvas.repaint();\r
-        }\r
-      }\r
-\r
-\r
-      private void jbInit()\r
-          throws Exception\r
-      {\r
-        this.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
-        wire.setLabel("Wireframe");\r
-        wire.addItemListener(new ItemListener()\r
-        {\r
-          public void itemStateChanged(ItemEvent e)\r
-          {\r
-            wire_actionPerformed();\r
-          }\r
-        });\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
-        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
-        charge.setLabel("Charge & Cysteine");\r
-        charge.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e)\r
-          {\r
-            charge_actionPerformed();\r
-          }\r
-        });\r
-        hydro.setLabel("Hydrophobicity");\r
-        hydro.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e)\r
-          {\r
-            hydro_actionPerformed();\r
-          }\r
-        });\r
-        chain.setLabel("By Chain");\r
-        chain.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e)\r
-          {\r
-            chain_actionPerformed();\r
-          }\r
-        });\r
-        seqButton.setLabel("By Sequence");\r
-        seqButton.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e){\r
-            seqButton_actionPerformed();\r
-          }\r
-        });\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
-    jMenuBar1.add(fileMenu);\r
-        jMenuBar1.add(coloursMenu);\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
-    allchains.setState(true);\r
-  }\r
-\r
-      MenuBar jMenuBar1 = new MenuBar();\r
-      Menu fileMenu = new Menu();\r
-      Menu coloursMenu = new Menu();\r
-      MenuItem mapping = new MenuItem();\r
-      CheckboxGroup bg = new CheckboxGroup();\r
-      CheckboxMenuItem wire = new CheckboxMenuItem();\r
-      CheckboxMenuItem depth = new CheckboxMenuItem();\r
-      CheckboxMenuItem zbuffer = new CheckboxMenuItem();\r
-\r
-      MenuItem charge = new MenuItem();\r
-      MenuItem hydro = new MenuItem();\r
-      MenuItem chain = new MenuItem();\r
-      MenuItem seqButton = new MenuItem();\r
-\r
-     CheckboxMenuItem allchains = new CheckboxMenuItem();\r
-\r
-  public void charge_actionPerformed()\r
-      {\r
-        clearButtonGroup();\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.redrawneeded=true;\r
-        pdbcanvas.repaint();\r
-      }\r
-\r
-      public void zbuffer_actionPerformed()\r
-      {\r
-        pdbcanvas.zbuffer = ! pdbcanvas.zbuffer;\r
-        pdbcanvas.redrawneeded=true;\r
-        pdbcanvas.repaint();\r
-      }\r
-\r
-      public void depth_actionPerformed()\r
-      {\r
-      pdbcanvas.depthcue = ! pdbcanvas.depthcue;\r
-      pdbcanvas.redrawneeded=true;\r
-        pdbcanvas.repaint();\r
-      }\r
-\r
-      public void wire_actionPerformed()\r
-      {\r
-        pdbcanvas.wire = ! pdbcanvas.wire;\r
-        pdbcanvas.redrawneeded=true;\r
-        pdbcanvas.repaint();\r
-      }\r
-\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
-        jalview.appletgui.CutAndPasteTransfer cap\r
-            = new jalview.appletgui.CutAndPasteTransfer(false, null);\r
-        Frame frame = new Frame();\r
-        frame.add(cap);\r
-        jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping", 500, 600);\r
-        cap.setText(pdbcanvas.mappingDetails.toString());\r
-      }\r
-\r
-      public void allchains_itemStateChanged(ItemEvent itemEvent)\r
-      {\r
-        pdbcanvas.setAllchainsVisible(allchains.getState());\r
-      }\r
-}\r
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * 
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package MCview;
+
+import java.awt.*;
+import java.awt.event.*;
+
+import jalview.appletgui.*;
+import jalview.datamodel.*;
+import jalview.schemes.*;
+
+public class AppletPDBViewer extends EmbmenuFrame implements
+        ActionListener, ItemListener
+{
+  AppletPDBCanvas pdbcanvas;
+
+  public AppletPDBViewer(PDBEntry pdbentry, SequenceI[] seq,
+          String[] chains, AlignmentPanel ap, String protocol)
+  {
+    try
+    {
+      jbInit();
+    } catch (Exception ex)
+    {
+      ex.printStackTrace();
+    }
+
+    pdbcanvas = new AppletPDBCanvas(pdbentry, seq, chains, ap, protocol);
+
+    embedMenuIfNeeded(pdbcanvas);
+    add(pdbcanvas, BorderLayout.CENTER);
+
+    StringBuffer title = new StringBuffer(seq[0].getName() + ":"
+            + pdbcanvas.pdbentry.getFile());
+
+    jalview.bin.JalviewLite.addFrame(this, title.toString(), 400, 400);
+
+  }
+
+  public void actionPerformed(ActionEvent evt)
+  {
+    if (evt.getSource() == mapping)
+    {
+      jalview.appletgui.CutAndPasteTransfer cap = new jalview.appletgui.CutAndPasteTransfer(
+              false, null);
+      Frame frame = new Frame();
+      frame.add(cap);
+      jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping",
+              500, 600);
+      cap.setText(pdbcanvas.mappingDetails.toString());
+
+    }
+    else if (evt.getSource() == charge)
+    {
+      pdbcanvas.bysequence = false;
+      pdbcanvas.pdb.setChargeColours();
+    }
+
+    else if (evt.getSource() == chain)
+    {
+      pdbcanvas.bysequence = false;
+      pdbcanvas.pdb.setChainColours();
+    }
+    else if (evt.getSource() == seqButton)
+    {
+      pdbcanvas.bysequence = true;
+      pdbcanvas.colourBySequence();
+
+    }
+    else if (evt.getSource() == zappo)
+    {
+      pdbcanvas.setColours(new ZappoColourScheme());
+    }
+    else if (evt.getSource() == taylor)
+    {
+      pdbcanvas.setColours(new TaylorColourScheme());
+    }
+    else if (evt.getSource() == hydro)
+    {
+      pdbcanvas.setColours(new HydrophobicColourScheme());
+    }
+    else if (evt.getSource() == helix)
+    {
+      pdbcanvas.setColours(new HelixColourScheme());
+    }
+    else if (evt.getSource() == strand)
+    {
+      pdbcanvas.setColours(new StrandColourScheme());
+    }
+    else if (evt.getSource() == turn)
+    {
+      pdbcanvas.setColours(new TurnColourScheme());
+    }
+    else if (evt.getSource() == buried)
+    {
+      pdbcanvas.setColours(new BuriedColourScheme());
+    }
+    else if (evt.getSource() == user)
+    {
+      pdbcanvas.bysequence = false;
+      new jalview.appletgui.UserDefinedColours(pdbcanvas);
+    }
+
+    pdbcanvas.redrawneeded = true;
+    pdbcanvas.repaint();
+
+  }
+
+  public void itemStateChanged(ItemEvent evt)
+  {
+    if (evt.getSource() == allchains)
+    {
+      pdbcanvas.setAllchainsVisible(allchains.getState());
+    }
+    else if (evt.getSource() == wire)
+    {
+      pdbcanvas.wire = !pdbcanvas.wire;
+    }
+    else if (evt.getSource() == depth)
+    {
+      pdbcanvas.depthcue = !pdbcanvas.depthcue;
+    }
+    else if (evt.getSource() == zbuffer)
+    {
+      pdbcanvas.zbuffer = !pdbcanvas.zbuffer;
+    }
+    pdbcanvas.redrawneeded = true;
+    pdbcanvas.repaint();
+  }
+
+  private void jbInit() throws Exception
+  {
+    setMenuBar(jMenuBar1);
+    fileMenu.setLabel("File");
+    coloursMenu.setLabel("Colours");
+    mapping.setLabel("View Mapping");
+    mapping.addActionListener(this);
+    wire.setLabel("Wireframe");
+    wire.addItemListener(this);
+    depth.setState(true);
+    depth.setLabel("Depthcue");
+    depth.addItemListener(this);
+    zbuffer.setState(true);
+    zbuffer.setLabel("Z Buffering");
+    zbuffer.addItemListener(this);
+    charge.setLabel("Charge & Cysteine");
+    charge.addActionListener(this);
+    hydro.setLabel("Hydrophobicity");
+    hydro.addActionListener(this);
+    chain.setLabel("By Chain");
+    chain.addActionListener(this);
+    seqButton.setLabel("By Sequence");
+    seqButton.addActionListener(this);
+    allchains.setLabel("All Chains Visible");
+    allchains.addItemListener(this);
+    viewMenu.setLabel("View");
+    zappo.setLabel("Zappo");
+    zappo.addActionListener(this);
+    taylor.setLabel("Taylor");
+    taylor.addActionListener(this);
+    helix.setLabel("Helix Propensity");
+    helix.addActionListener(this);
+    strand.setLabel("Strand Propensity");
+    strand.addActionListener(this);
+    turn.setLabel("Turn Propensity");
+    turn.addActionListener(this);
+    buried.setLabel("Buried Index");
+    buried.addActionListener(this);
+    user.setLabel("User Defined...");
+    user.addActionListener(this);
+    jMenuBar1.add(fileMenu);
+    jMenuBar1.add(coloursMenu);
+    jMenuBar1.add(viewMenu);
+    fileMenu.add(mapping);
+    ;
+
+    coloursMenu.add(seqButton);
+    coloursMenu.add(chain);
+    coloursMenu.add(charge);
+    coloursMenu.add(zappo);
+    coloursMenu.add(taylor);
+    coloursMenu.add(hydro);
+    coloursMenu.add(helix);
+    coloursMenu.add(strand);
+    coloursMenu.add(turn);
+    coloursMenu.add(buried);
+    coloursMenu.add(user);
+    viewMenu.add(wire);
+    viewMenu.add(depth);
+    viewMenu.add(zbuffer);
+    viewMenu.add(allchains);
+    allchains.setState(true);
+  }
+
+  MenuBar jMenuBar1 = new MenuBar();
+
+  Menu fileMenu = new Menu();
+
+  Menu coloursMenu = new Menu();
+
+  MenuItem mapping = new MenuItem();
+
+  CheckboxGroup bg = new CheckboxGroup();
+
+  CheckboxMenuItem wire = new CheckboxMenuItem();
+
+  CheckboxMenuItem depth = new CheckboxMenuItem();
+
+  CheckboxMenuItem zbuffer = new CheckboxMenuItem();
+
+  MenuItem charge = new MenuItem();
+
+  MenuItem hydro = new MenuItem();
+
+  MenuItem chain = new MenuItem();
+
+  MenuItem seqButton = new MenuItem();
+
+  CheckboxMenuItem allchains = new CheckboxMenuItem();
+
+  Menu viewMenu = new Menu();
+
+  MenuItem turn = new MenuItem();
+
+  MenuItem strand = new MenuItem();
+
+  MenuItem helix = new MenuItem();
+
+  MenuItem taylor = new MenuItem();
+
+  MenuItem zappo = new MenuItem();
+
+  MenuItem buried = new MenuItem();
+
+  MenuItem user = new MenuItem();
+
+  // End StructureListener
+  // //////////////////////////
+
+}