X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2FMCview%2FPDBViewer.java;h=3800d075d7129e0fed0fe740e1391cfcd6fa24e8;hb=153dd62dc91da13ae732600e6ea55ddbe15eab39;hp=4bed63ab328d2b1966c45d90bf4484a9c48930ba;hpb=f3f3f5d2d3d137ab12ea944a7a120de51677a5c6;p=jalview.git diff --git a/src/MCview/PDBViewer.java b/src/MCview/PDBViewer.java index 4bed63a..3800d07 100755 --- a/src/MCview/PDBViewer.java +++ b/src/MCview/PDBViewer.java @@ -1,20 +1,19 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle - * - * This program 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 2 - * of the License, or (at your option) any later version. - * - * This program 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 this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) + * Copyright (C) 2010 J Procter, AM Waterhouse, 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 . */ package MCview; @@ -27,10 +26,11 @@ import jalview.datamodel.*; import jalview.gui.*; import jalview.io.*; import jalview.schemes.*; +import jalview.ws.ebi.EBIFetchClient; + import java.awt.BorderLayout; -public class PDBViewer - extends JInternalFrame implements Runnable +public class PDBViewer extends JInternalFrame implements Runnable { /** @@ -39,17 +39,19 @@ public class PDBViewer PDBCanvas pdbcanvas; PDBEntry pdbentry; - SequenceI[]seq; - String[]chains; + + SequenceI[] seq; + + String[] chains; + AlignmentPanel ap; + String protocol; + String tmpPDBFile; - public PDBViewer(PDBEntry pdbentry, - SequenceI[] seq, - String[] chains, - AlignmentPanel ap, - String protocol) + public PDBViewer(PDBEntry pdbentry, SequenceI[] seq, String[] chains, + AlignmentPanel ap, String protocol) { this.pdbentry = pdbentry; @@ -61,16 +63,13 @@ public class PDBViewer try { jbInit(); - } - catch (Exception ex) + } catch (Exception ex) { ex.printStackTrace(); } - - StringBuffer title = new StringBuffer(seq[0].getName() - + ":" - + pdbentry.getFile()); + StringBuffer title = new StringBuffer(seq[0].getName() + ":" + + pdbentry.getFile()); pdbcanvas = new PDBCanvas(); @@ -82,12 +81,11 @@ public class PDBViewer { tmpPDBFile = pdbentry.getFile(); PDBfile pdbfile = new PDBfile(tmpPDBFile, - jalview.io.AppletFormatAdapter.FILE); + jalview.io.AppletFormatAdapter.FILE); pdbcanvas.init(pdbentry, seq, chains, ap, protocol); - } - catch (java.io.IOException ex) + } catch (java.io.IOException ex) { ex.printStackTrace(); } @@ -98,8 +96,6 @@ public class PDBViewer worker.start(); } - - if (pdbentry.getProperty() != null) { if (pdbentry.getProperty().get("method") != null) @@ -123,20 +119,18 @@ public class PDBViewer EBIFetchClient ebi = new EBIFetchClient(); String query = "pdb:" + pdbentry.getId(); pdbentry.setFile(ebi.fetchDataAsFile(query, "default", "raw") - .getAbsolutePath()); + .getAbsolutePath()); - if(pdbentry.getFile()!=null) + if (pdbentry.getFile() != null) pdbcanvas.init(pdbentry, seq, chains, ap, protocol); - } - catch (Exception ex) + } catch (Exception ex) { - pdbcanvas.errorMessage = "Error retrieving file: "+pdbentry.getId(); + pdbcanvas.errorMessage = "Error retrieving file: " + pdbentry.getId(); ex.printStackTrace(); } } - private void jbInit() - throws Exception + private void jbInit() throws Exception { this.addKeyListener(new KeyAdapter() { @@ -351,32 +345,33 @@ public class PDBViewer if (jalview.gui.UserDefinedColours.getUserColourSchemes() != null) { - java.util.Enumeration userColours = jalview.gui.UserDefinedColours. - getUserColourSchemes().keys(); + java.util.Enumeration userColours = jalview.gui.UserDefinedColours + .getUserColourSchemes().keys(); while (userColours.hasMoreElements()) { final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem( - userColours. - nextElement().toString()); + userColours.nextElement().toString()); radioItem.setName("USER_DEFINED"); radioItem.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent evt) { - if (evt.isControlDown() || SwingUtilities.isRightMouseButton(evt)) + if (evt.isControlDown() + || SwingUtilities.isRightMouseButton(evt)) { - radioItem.removeActionListener(radioItem.getActionListeners()[0]); - - int option = JOptionPane.showInternalConfirmDialog(jalview.gui. - Desktop.desktop, - "Remove from default list?", - "Remove user defined colour", - JOptionPane.YES_NO_OPTION); + radioItem + .removeActionListener(radioItem.getActionListeners()[0]); + + int option = JOptionPane.showInternalConfirmDialog( + jalview.gui.Desktop.desktop, + "Remove from default list?", + "Remove user defined colour", + JOptionPane.YES_NO_OPTION); if (option == JOptionPane.YES_OPTION) { - jalview.gui.UserDefinedColours.removeColourFromDefaults( - radioItem.getText()); + jalview.gui.UserDefinedColours + .removeColourFromDefaults(radioItem.getText()); coloursMenu.remove(radioItem); } else @@ -411,36 +406,60 @@ public class PDBViewer } JMenuBar jMenuBar1 = new JMenuBar(); + JMenu fileMenu = new JMenu(); + JMenu coloursMenu = new JMenu(); + JMenu saveMenu = new JMenu(); + JMenuItem png = new JMenuItem(); + JMenuItem eps = new JMenuItem(); + JMenuItem mapping = new JMenuItem(); + JCheckBoxMenuItem wire = new JCheckBoxMenuItem(); + JCheckBoxMenuItem depth = new JCheckBoxMenuItem(); + JCheckBoxMenuItem zbuffer = new JCheckBoxMenuItem(); + JCheckBoxMenuItem allchains = new JCheckBoxMenuItem(); JRadioButtonMenuItem charge = new JRadioButtonMenuItem(); + JRadioButtonMenuItem chain = new JRadioButtonMenuItem(); + JRadioButtonMenuItem seqButton = new JRadioButtonMenuItem(); + JRadioButtonMenuItem hydro = new JRadioButtonMenuItem(); + JRadioButtonMenuItem taylor = new JRadioButtonMenuItem(); + JRadioButtonMenuItem zappo = new JRadioButtonMenuItem(); + JRadioButtonMenuItem user = new JRadioButtonMenuItem(); + JRadioButtonMenuItem buried = new JRadioButtonMenuItem(); + JRadioButtonMenuItem turn = new JRadioButtonMenuItem(); + JRadioButtonMenuItem strand = new JRadioButtonMenuItem(); + JRadioButtonMenuItem helix = new JRadioButtonMenuItem(); + JMenu viewMenu = new JMenu(); + JMenuItem background = new JMenuItem(); + JMenuItem savePDB = new JMenuItem(); /** * DOCUMENT ME! - * - * @param e DOCUMENT ME! + * + * @param e + * DOCUMENT ME! */ public void eps_actionPerformed(ActionEvent e) { @@ -449,8 +468,9 @@ public class PDBViewer /** * DOCUMENT ME! - * - * @param e DOCUMENT ME! + * + * @param e + * DOCUMENT ME! */ public void png_actionPerformed(ActionEvent e) { @@ -466,19 +486,14 @@ public class PDBViewer if (type == jalview.util.ImageMaker.PNG) { - im = new jalview.util.ImageMaker(this, - jalview.util.ImageMaker.PNG, - "Make PNG image from view", - width, height, - null, null); + im = new jalview.util.ImageMaker(this, jalview.util.ImageMaker.PNG, + "Make PNG image from view", width, height, null, null); } else { - im = new jalview.util.ImageMaker(this, - jalview.util.ImageMaker.EPS, - "Make EPS file from view", - width, height, - null, this.getTitle()); + im = new jalview.util.ImageMaker(this, jalview.util.ImageMaker.EPS, + "Make EPS file from view", width, height, null, this + .getTitle()); } if (im.getGraphics() != null) @@ -549,8 +564,14 @@ public class PDBViewer public void mapping_actionPerformed(ActionEvent e) { jalview.gui.CutAndPasteTransfer cap = new jalview.gui.CutAndPasteTransfer(); - Desktop.addInternalFrame(cap, "PDB - Sequence Mapping", 550, 600); - cap.setText(pdbcanvas.mappingDetails.toString()); + try { + cap.setText(pdbcanvas.mappingDetails.toString()); + Desktop.addInternalFrame(cap, "PDB - Sequence Mapping", 550, 600); + } catch (OutOfMemoryError oom) + { + new OOMWarning("Opening sequence to structure mapping report",oom); + cap.dispose(); + } } public void allchains_itemStateChanged(ItemEvent e) @@ -558,7 +579,6 @@ public class PDBViewer pdbcanvas.setAllchainsVisible(allchains.getState()); } - public void zappo_actionPerformed(ActionEvent e) { pdbcanvas.bysequence = false; @@ -611,12 +631,12 @@ public class PDBViewer { if (e.getActionCommand().equals("User Defined...")) { - // new UserDefinedColours(pdbcanvas, null); + // new UserDefinedColours(pdbcanvas, null); } else { - UserColourScheme udc = (UserColourScheme) UserDefinedColours. - getUserColourSchemes().get(e.getActionCommand()); + UserColourScheme udc = (UserColourScheme) UserDefinedColours + .getUserColourSchemes().get(e.getActionCommand()); pdbcanvas.pdb.setColours(udc); pdbcanvas.redrawneeded = true; @@ -627,8 +647,7 @@ public class PDBViewer public void background_actionPerformed(ActionEvent e) { java.awt.Color col = JColorChooser.showDialog(this, - "Select Background Colour", - pdbcanvas.backgroundColour); + "Select Background Colour", pdbcanvas.backgroundColour); if (col != null) { @@ -640,9 +659,8 @@ public class PDBViewer public void savePDB_actionPerformed(ActionEvent e) { - JalviewFileChooser chooser = new JalviewFileChooser( - jalview.bin.Cache.getProperty( - "LAST_DIRECTORY")); + JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache + .getProperty("LAST_DIRECTORY")); chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle("Save PDB File"); @@ -659,18 +677,15 @@ public class PDBViewer PrintWriter out = new PrintWriter(new FileOutputStream(outFile)); String data; - while ( (data = in.readLine()) != null) + while ((data = in.readLine()) != null) { - if ( - ! (data.indexOf("
") > -1 || data.indexOf("
") > -1) - ) + if (!(data.indexOf("
") > -1 || data.indexOf("
") > -1)) { out.println(data); } } out.close(); - } - catch (Exception ex) + } catch (Exception ex) { ex.printStackTrace(); }