package MCview; import java.awt.*; import java.awt.event.*; import jalview.datamodel.*; import jalview.appletgui.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class AppletPDBViewer extends Frame { PDBEntry pdb; Sequence sequence; AppletPDBCanvas pdbcanvas; public AppletPDBViewer(String pdbtext, Sequence seq, SeqCanvas seqcanvas) { sequence = seq; try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } pdbcanvas = new AppletPDBCanvas(seqcanvas, seq); add(pdbcanvas, BorderLayout.CENTER); StringBuffer title = new StringBuffer(sequence.getName() + ":"); jalview.bin.JalviewLite.addFrame(this,title.toString(),400, 400); try{ PDBfile pdbfile = new PDBfile(pdbtext, "Paste"); pdbcanvas.setPDBFile(pdbfile); }catch(Exception ex){ex.printStackTrace();} } private void jbInit() throws Exception { this.setMenuBar(jMenuBar1); fileMenu.setLabel("File"); coloursMenu.setLabel("Colours"); mapping.setLabel("View Mapping"); mapping.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mapping_actionPerformed(); } }); wire.setLabel("Wireframe"); wire.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { wire_actionPerformed(); } }); depth.setState(true); depth.setLabel("Depthcue"); depth.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { depth_actionPerformed(); } }); zbuffer.setState(true); zbuffer.setLabel("Z Buffering"); zbuffer.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { zbuffer_actionPerformed(); } }); charge.setLabel("Charge & Cysteine"); charge.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { charge_actionPerformed(); } }); hydro.setLabel("Hydrophobicity"); hydro.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { hydro_actionPerformed(); } }); chain.setLabel("By Chain"); chain.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { chain_actionPerformed(); } }); seqButton.setLabel("By Sequence"); seqButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ seqButton_actionPerformed(); } }); allchains.setLabel("All Chains Visible"); allchains.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent itemEvent) { allchains_itemStateChanged(itemEvent); } }); jMenuBar1.add(fileMenu); jMenuBar1.add(coloursMenu); fileMenu.add(mapping);; coloursMenu.add(seqButton); coloursMenu.add(chain); coloursMenu.add(hydro); coloursMenu.add(charge); coloursMenu.addSeparator(); coloursMenu.add(wire); coloursMenu.add(depth); coloursMenu.add(zbuffer); coloursMenu.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(); public void charge_actionPerformed() { clearButtonGroup(); pdbcanvas.pdb.setChargeColours(); pdbcanvas.redrawneeded=true; pdbcanvas.repaint(); } public void hydro_actionPerformed() { clearButtonGroup(); pdbcanvas.pdb.setHydrophobicityColours(); pdbcanvas.redrawneeded=true; pdbcanvas.repaint(); } public void chain_actionPerformed() { clearButtonGroup(); pdbcanvas.pdb.setChainColours(); pdbcanvas.redrawneeded=true; pdbcanvas.repaint(); } public void zbuffer_actionPerformed() { pdbcanvas.zbuffer = ! pdbcanvas.zbuffer; pdbcanvas.redrawneeded=true; pdbcanvas.repaint(); } public void depth_actionPerformed() { pdbcanvas.depthcue = ! pdbcanvas.depthcue; pdbcanvas.redrawneeded=true; pdbcanvas.repaint(); } public void wire_actionPerformed() { pdbcanvas.wire = ! pdbcanvas.wire; pdbcanvas.redrawneeded=true; pdbcanvas.repaint(); } public void seqButton_actionPerformed() { clearButtonGroup(); pdbcanvas.bysequence = true; pdbcanvas.updateSeqColours(); pdbcanvas.repaint(); } void clearButtonGroup() { pdbcanvas.bysequence = false; pdbcanvas.bymolecule = false; } public void mapping_actionPerformed() { 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()); } public void allchains_itemStateChanged(ItemEvent itemEvent) { pdbcanvas.setAllchainsVisible(allchains.getState()); } }