set chains available
[jalview.git] / src / MCview / AppletPDBViewer.java
index 10a20a2..2471f32 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 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
 package MCview;\r
 \r
 import java.awt.*;\r
-\r
 import java.awt.event.*;\r
-import jalview.datamodel.*;\r
+\r
 import jalview.appletgui.*;\r
+import jalview.datamodel.*;\r
 import jalview.schemes.*;\r
-import java.awt.event.ActionListener;\r
-import java.awt.event.ActionEvent;\r
 \r
 \r
-public class AppletPDBViewer extends Frame implements ActionListener, ItemListener\r
+public class AppletPDBViewer\r
+    extends Frame implements ActionListener, ItemListener\r
 {\r
-      AppletPDBCanvas pdbcanvas;\r
-      public AppletPDBViewer(String pdbtext,String type,\r
-                       Sequence seq,\r
-                       SeqCanvas seqcanvas)\r
-      {\r
+  AppletPDBCanvas pdbcanvas;\r
 \r
-        try\r
-        {\r
-          jbInit();\r
-        }\r
-        catch (Exception ex)\r
-        {\r
-          ex.printStackTrace();\r
-        }\r
+  public AppletPDBViewer(PDBEntry pdbentry,\r
+                         SequenceI[] seq,\r
+                         String [] chains,\r
+                         AlignmentPanel ap,\r
+                         String protocol)\r
+  {\r
+    try\r
+    {\r
+      jbInit();\r
+    }\r
+    catch (Exception ex)\r
+    {\r
+      ex.printStackTrace();\r
+    }\r
 \r
-        pdbcanvas = new AppletPDBCanvas(seqcanvas, seq);\r
+    pdbcanvas = new AppletPDBCanvas(pdbentry, seq, chains, ap, protocol);\r
 \r
-        add(pdbcanvas, BorderLayout.CENTER);\r
 \r
-        StringBuffer title = new StringBuffer(seq.getName() + ":");\r
+    add(pdbcanvas, BorderLayout.CENTER);\r
 \r
-        jalview.bin.JalviewLite.addFrame(this,title.toString(),400, 400);\r
+    StringBuffer title = new StringBuffer(seq[0].getName()\r
+                                          + ":"\r
+                                          + pdbcanvas.pdbentry.getFile());\r
 \r
-        try{\r
-        PDBfile pdbfile = new PDBfile(pdbtext, type);\r
-        pdbcanvas.setPDBFile(pdbfile);\r
-        }\r
-        catch(Exception ex){\r
-          ex.printStackTrace();\r
-          pdbcanvas.errorLoading = true;\r
-          pdbcanvas.repaint();\r
-        }\r
-      }\r
+    jalview.bin.JalviewLite.addFrame(this, title.toString(), 400, 400);\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
 \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
+  public void actionPerformed(ActionEvent evt)\r
+  {\r
+    if (evt.getSource() == mapping)\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,\r
+                                       600);\r
+      cap.setText(pdbcanvas.mappingDetails.toString());\r
+\r
+    }\r
+    else if (evt.getSource() == charge)\r
+    {\r
+      pdbcanvas.bysequence = false;\r
+      pdbcanvas.pdb.setChargeColours();\r
+    }\r
+\r
+    else if (evt.getSource() == chain)\r
+    {\r
+      pdbcanvas.bysequence = false;\r
+      pdbcanvas.pdb.setChainColours();\r
+    }\r
+    else if (evt.getSource() == seqButton)\r
+    {\r
+      pdbcanvas.bysequence = true;\r
+      pdbcanvas.colourBySequence();\r
+\r
+    }\r
+    else if (evt.getSource() == zappo)\r
+    {\r
+      pdbcanvas.setColours(new ZappoColourScheme());\r
+    }\r
+    else if (evt.getSource() == taylor)\r
+    {\r
+      pdbcanvas.setColours(new TaylorColourScheme());\r
+    }\r
+    else if (evt.getSource() == hydro)\r
+    {\r
+      pdbcanvas.setColours(new HydrophobicColourScheme());\r
+    }\r
+    else if (evt.getSource() == helix)\r
+    {\r
+      pdbcanvas.setColours(new HelixColourScheme());\r
+    }\r
+    else if (evt.getSource() == strand)\r
+    {\r
+      pdbcanvas.setColours(new StrandColourScheme());\r
+    }\r
+    else if (evt.getSource() == turn)\r
+    {\r
+      pdbcanvas.setColours(new TurnColourScheme());\r
+    }\r
+    else if (evt.getSource() == buried)\r
+    {\r
+      pdbcanvas.setColours(new BuriedColourScheme());\r
+    }\r
+    else if (evt.getSource() == user)\r
+    {\r
+      pdbcanvas.bysequence = false;\r
+      new jalview.appletgui.UserDefinedColours(pdbcanvas);\r
+    }\r
+\r
+    pdbcanvas.redrawneeded = true;\r
+    pdbcanvas.repaint();\r
+\r
+  }\r
+\r
+  public void itemStateChanged(ItemEvent evt)\r
+  {\r
+    if (evt.getSource() == allchains)\r
+    {\r
+      pdbcanvas.setAllchainsVisible(allchains.getState());\r
+    }\r
+    else if (evt.getSource() == wire)\r
+    {\r
+          pdbcanvas.wire = !pdbcanvas.wire;\r
+    }\r
+    else if (evt.getSource() == depth)\r
+    {\r
+      pdbcanvas.depthcue = !pdbcanvas.depthcue;\r
+    }\r
+    else if (evt.getSource() == zbuffer)\r
+    {\r
+      pdbcanvas.zbuffer = !pdbcanvas.zbuffer;\r
+    }\r
+    pdbcanvas.redrawneeded = true;\r
+    pdbcanvas.repaint();\r
+  }\r
 \r
-      private void jbInit()\r
-          throws Exception\r
-      {\r
-        setMenuBar(jMenuBar1);\r
-        fileMenu.setLabel("File");\r
-        coloursMenu.setLabel("Colours");\r
-        mapping.setLabel("View Mapping");\r
-        mapping.addActionListener(this);\r
-        wire.setLabel("Wireframe");\r
-        wire.addItemListener(this);\r
-        depth.setState(true);\r
-        depth.setLabel("Depthcue");\r
-        depth.addItemListener(this);\r
-        zbuffer.setState(true);\r
-        zbuffer.setLabel("Z Buffering");\r
-        zbuffer.addItemListener(this);\r
-        charge.setLabel("Charge & Cysteine");\r
-        charge.addActionListener(this);\r
-        hydro.setLabel("Hydrophobicity");\r
-        hydro.addActionListener(this);\r
-        chain.setLabel("By Chain");\r
-        chain.addActionListener(this);\r
-        seqButton.setLabel("By Sequence");\r
-        seqButton.addActionListener(this);\r
+  private void jbInit()\r
+      throws Exception\r
+  {\r
+    setMenuBar(jMenuBar1);\r
+    fileMenu.setLabel("File");\r
+    coloursMenu.setLabel("Colours");\r
+    mapping.setLabel("View Mapping");\r
+    mapping.addActionListener(this);\r
+    wire.setLabel("Wireframe");\r
+    wire.addItemListener(this);\r
+    depth.setState(true);\r
+    depth.setLabel("Depthcue");\r
+    depth.addItemListener(this);\r
+    zbuffer.setState(true);\r
+    zbuffer.setLabel("Z Buffering");\r
+    zbuffer.addItemListener(this);\r
+    charge.setLabel("Charge & Cysteine");\r
+    charge.addActionListener(this);\r
+    hydro.setLabel("Hydrophobicity");\r
+    hydro.addActionListener(this);\r
+    chain.setLabel("By Chain");\r
+    chain.addActionListener(this);\r
+    seqButton.setLabel("By Sequence");\r
+    seqButton.addActionListener(this);\r
     allchains.setLabel("All Chains Visible");\r
     allchains.addItemListener(this);\r
     viewMenu.setLabel("View");\r
@@ -157,12 +194,12 @@ public class AppletPDBViewer extends Frame implements ActionListener, ItemListen
     user.setLabel("User Defined...");\r
     user.addActionListener(this);\r
     jMenuBar1.add(fileMenu);\r
-        jMenuBar1.add(coloursMenu);\r
+    jMenuBar1.add(coloursMenu);\r
     jMenuBar1.add(viewMenu);\r
-    fileMenu.add(mapping);;\r
+    fileMenu.add(mapping); ;\r
 \r
-        coloursMenu.add(seqButton);\r
-        coloursMenu.add(chain);\r
+    coloursMenu.add(seqButton);\r
+    coloursMenu.add(chain);\r
     coloursMenu.add(charge);\r
     coloursMenu.add(zappo);\r
     coloursMenu.add(taylor);\r
@@ -179,21 +216,21 @@ public class AppletPDBViewer extends Frame implements ActionListener, ItemListen
     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
+  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
   Menu viewMenu = new Menu();\r
   MenuItem turn = new MenuItem();\r
   MenuItem strand = new MenuItem();\r
@@ -203,64 +240,9 @@ public class AppletPDBViewer extends Frame implements ActionListener, ItemListen
   MenuItem buried = new MenuItem();\r
   MenuItem user = new MenuItem();\r
 \r
-  public void charge_actionPerformed()\r
-      {\r
-        pdbcanvas.bysequence = false;\r
-        pdbcanvas.pdb.setChargeColours();\r
-        pdbcanvas.redrawneeded=true;\r
-        pdbcanvas.repaint();\r
-      }\r
-\r
-      public void chain_actionPerformed()\r
-      {\r
-         pdbcanvas.bysequence = false;\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
-        pdbcanvas.bysequence = true;\r
-        pdbcanvas.updateSeqColours();\r
-        pdbcanvas.repaint();\r
-      }\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
+//End StructureListener\r
+////////////////////////////\r
 \r
-      public void allchains_itemStateChanged()\r
-      {\r
-        pdbcanvas.setAllchainsVisible(allchains.getState());\r
-      }\r
 \r
 }\r