X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2FMCview%2FPDBViewer.java;h=06b6f65c664f30fd4a57281fb916526772895119;hb=0ec05d5a2b604aaedcca284a696a4fc71707b444;hp=49c1b11122c17f4ec412b65e2b5d4a1ffc884163;hpb=65bf1cd0ea1526762e829059bf6ae0901db9731d;p=jalview.git diff --git a/src/MCview/PDBViewer.java b/src/MCview/PDBViewer.java index 49c1b11..06b6f65 100755 --- a/src/MCview/PDBViewer.java +++ b/src/MCview/PDBViewer.java @@ -7,13 +7,6 @@ import jalview.gui.*; import jalview.io.EBIFetchClient; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; -import java.io.FileOutputStream; -import org.jibble.epsgraphics.EpsGraphics2D; -import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.RenderingHints; public class PDBViewer extends JInternalFrame implements Runnable { @@ -41,11 +34,15 @@ public class PDBViewer extends JInternalFrame implements Runnable pdbcanvas = new PDBCanvas(seqcanvas, seq); setContentPane(pdbcanvas); - Desktop.addInternalFrame(this, - sequence.getName() + ":" + pdb.getId() - + " Method: " + pdb.getProperty().get("method") - + " Chain:" + pdb.getProperty().get("chains"), - 400, 400); + StringBuffer title = new StringBuffer(sequence.getName() + ":" + pdb.getId()); + if(pdb.getProperty()!=null) + { + title.append( " Method: " ); + title.append(pdb.getProperty().get("method")); + title.append( " Chain:" ); + title.append( pdb.getProperty().get("chains")); + } + Desktop.addInternalFrame(this,title.toString(),400, 400); Thread worker = new Thread(this); worker.start(); @@ -177,6 +174,15 @@ public class PDBViewer extends JInternalFrame implements Runnable molecule_actionPerformed(e); } }); + allchains.setSelected(true); + allchains.setText("Show All Chains"); + allchains.addItemListener(new ItemListener() + { + public void itemStateChanged(ItemEvent e) + { + allchains_itemStateChanged(e); + } + }); jMenuBar1.add(fileMenu); jMenuBar1.add(coloursMenu); fileMenu.add(saveMenu); @@ -192,6 +198,7 @@ public class PDBViewer extends JInternalFrame implements Runnable coloursMenu.add(depth); coloursMenu.add(zbuffer); coloursMenu.add(molecule); + coloursMenu.add(allchains); ButtonGroup bg = new ButtonGroup(); bg.add(seqButton); bg.add(chain); @@ -214,127 +221,54 @@ public class PDBViewer extends JInternalFrame implements Runnable JRadioButtonMenuItem chain = new JRadioButtonMenuItem(); JRadioButtonMenuItem seqButton = new JRadioButtonMenuItem(); JCheckBoxMenuItem molecule = new JCheckBoxMenuItem(); + JCheckBoxMenuItem allchains = new JCheckBoxMenuItem(); - public void png_actionPerformed(ActionEvent e) + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ + public void eps_actionPerformed(ActionEvent e) { - int width = pdbcanvas.getWidth(); - int height = pdbcanvas.getHeight(); - - try - { - jalview.io.JalviewFileChooser chooser = new jalview.io.JalviewFileChooser(jalview.bin.Cache.getProperty( - "LAST_DIRECTORY"), new String[] { "png" }, - new String[] { "Portable network graphics" }, - "Portable network graphics"); - - chooser.setFileView(new jalview.io.JalviewFileView()); - chooser.setDialogTitle("Create PNG Image of Molecule"); - chooser.setToolTipText("Save"); - - int value = chooser.showSaveDialog(this); - - if (value != jalview.io.JalviewFileChooser.APPROVE_OPTION) - { - return; - } - - jalview.bin.Cache.setProperty("LAST_DIRECTORY", - chooser.getSelectedFile().getParent()); - - FileOutputStream out = new FileOutputStream(chooser.getSelectedFile()); - - BufferedImage bi = new BufferedImage(width, height, - BufferedImage.TYPE_INT_RGB); - Graphics png = bi.getGraphics(); - Graphics2D ig2 = (Graphics2D) png; - ig2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - - - pdbcanvas.drawAll(png, width, height); - - ImageIO.write(bi, "png", out); - out.close(); - } - catch (Exception ex) - { - ex.printStackTrace(); - } + makePDBImage(jalview.util.ImageMaker.EPS); } - public void eps_actionPerformed(ActionEvent e) + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ + public void png_actionPerformed(ActionEvent e) { - boolean accurateText = true; - - String renderStyle = jalview.bin.Cache.getDefault("EPS_RENDERING", - "Prompt each time"); - - // If we need to prompt, and if the GUI is visible then - // Prompt for EPS rendering style - if (renderStyle.equalsIgnoreCase("Prompt each time") - && ! - (System.getProperty("java.awt.headless") != null - && System.getProperty("java.awt.headless").equals("true"))) - { - EPSOptions eps = new EPSOptions(); - renderStyle = eps.getValue(); - - if (renderStyle==null || eps.cancelled) - return; - + makePDBImage(jalview.util.ImageMaker.PNG); + } - } + void makePDBImage(int type) + { + int width = pdbcanvas.getWidth(); + int height = pdbcanvas.getHeight(); - if (renderStyle.equalsIgnoreCase("text")) + jalview.util.ImageMaker im; + + 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); + else + im = new jalview.util.ImageMaker(this, + jalview.util.ImageMaker.EPS, + "Make EPS file from view", + width, height, + null, this.getTitle()); + + if (im.getGraphics() != null) { - accurateText = false; + pdbcanvas.drawAll(im.getGraphics(), width, height); + im.writeImage(); } - - int width = getWidth(); - int height = getHeight(); - - try - { - jalview.io.JalviewFileChooser chooser = new jalview.io.JalviewFileChooser(jalview.bin.Cache.getProperty( - "LAST_DIRECTORY"), new String[] { "eps" }, - new String[] { "Encapsulated Postscript" }, - "Encapsulated Postscript"); - chooser.setFileView(new jalview.io.JalviewFileView()); - chooser.setDialogTitle("Create EPS file from tree"); - chooser.setToolTipText("Save"); - - int value = chooser.showSaveDialog(this); - - if (value != jalview.io.JalviewFileChooser.APPROVE_OPTION) - { - return; - } - - jalview.bin.Cache.setProperty("LAST_DIRECTORY", - chooser.getSelectedFile().getParent()); - - FileOutputStream out = new FileOutputStream(chooser.getSelectedFile()); - EpsGraphics2D pg = new EpsGraphics2D("Tree", out, 0, 0, width, - height); - Graphics2D ig2 = (Graphics2D) pg; - ig2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - - - pg.setAccurateTextMode(accurateText); - - pdbcanvas.drawAll(pg, width, height); - - pg.flush(); - pg.close(); - } - catch (Exception ex) - { - ex.printStackTrace(); - } - } - public void charge_actionPerformed(ActionEvent e) { clearButtonGroup(); @@ -406,4 +340,9 @@ public class PDBViewer extends JInternalFrame implements Runnable Desktop.addInternalFrame(cap, "PDB - Sequence Mapping", 500, 600); cap.setText(pdbcanvas.mappingDetails.toString()); } + + public void allchains_itemStateChanged(ItemEvent e) + { + pdbcanvas.setAllchainsVisible(allchains.getState()); + } }