From: Egon W. <eg...@us...> - 2002-01-05 13:41:18
|
Update of /cvsroot/cdk/cdk/org/openscience/cdk/applications In directory usw-pr-cvs1:/tmp/cvs-serv22838 Modified Files: Viewer.java Log Message: Added test for 3D coordinates. If so, use Accelerated 3D viewer. Index: Viewer.java =================================================================== RCS file: /cvsroot/cdk/cdk/org/openscience/cdk/applications/Viewer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Viewer.java 2002/01/04 15:12:36 1.1 --- Viewer.java 2002/01/05 13:41:14 1.2 *************** *** 1,24 **** /* $RCSfile$ ! * $Author$ ! * $Date$ * $Revision$ ! * * Copyright (C) 2001 The CDK project ! * * Contact: ste...@ic..., gez...@ma..., eg...@sc... ! * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * 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 Lesser General Public License for more details. ! * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software ! * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ --- 1,24 ---- /* $RCSfile$ ! * $Author$ ! * $Date$ * $Revision$ ! * * Copyright (C) 2001 The CDK project ! * * Contact: ste...@ic..., gez...@ma..., eg...@sc... ! * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * 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 Lesser General Public License for more details. ! * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software ! * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ *************** *** 32,35 **** --- 32,37 ---- import java.util.*; import java.io.*; + import javax.swing.*; + import java.awt.*; public class Viewer { *************** *** 40,43 **** --- 42,46 ---- logger = new org.openscience.cdk.tools.LoggingTool(); + ChemFile chemFile = new ChemFile(); try { ChemObjectReader reader; *************** *** 49,57 **** reader = new CMLReader(new FileReader(inFile)); logger.info("Expecting CML format..."); } else { reader = new MDLReader(new FileInputStream(inFile)); logger.info("Expecting MDL MolFile format..."); } ! ChemFile chemFile = (ChemFile)reader.read((ChemObject)new ChemFile()); ChemSequence chemSequence; --- 52,69 ---- reader = new CMLReader(new FileReader(inFile)); logger.info("Expecting CML format..."); + } else if (inFile.endsWith(".pdb")) { + reader = new PDBReader(new FileReader(inFile)); + logger.info("Expecting PDB format..."); } else { reader = new MDLReader(new FileInputStream(inFile)); logger.info("Expecting MDL MolFile format..."); } ! chemFile = (ChemFile)reader.read((ChemObject)new ChemFile()); ! } catch(Exception exc) { ! logger.error("Error while reading file"); ! logger.error(exc.toString()); ! System.exit(1); ! } ! ChemSequence chemSequence; *************** *** 59,85 **** SetOfMolecules setOfMolecules; logger.info(" number of sequences: " + chemFile.getChemSequenceCount()); ! for (int sequence = 0; sequence < chemFile.getChemSequenceCount(); sequence++) { chemSequence = chemFile.getChemSequence(sequence); ! logger.info(" number of models in sequence " + sequence + ": " + chemSequence.getChemModelCount()); for (int model = 0; model < chemSequence.getChemModelCount(); model++) { chemModel = chemSequence.getChemModel(model); setOfMolecules = chemModel.getSetOfMolecules(); ! logger.info(" number of molecules in model " + model + ": " + setOfMolecules.getMoleculeCount()); for (int i = 0; i < setOfMolecules.getMoleculeCount(); i++) { Molecule m = setOfMolecules.getMolecule(i); ! // since there is no Renderer3D yet, project in XY plane ! if (!GeometryTools.has2DCoordinates(m)) Projector.project2D(m); ! MoleculeViewer2D mv = new MoleculeViewer2D(m); ! mv.display(); ! AtomicTable at = new AtomicTable(m); ! at.display(); } } } - } catch(Exception exc) { - logger.error(exc.toString()); - } } --- 71,117 ---- SetOfMolecules setOfMolecules; logger.info(" number of sequences: " + chemFile.getChemSequenceCount()); ! for (int sequence = 0; sequence < chemFile.getChemSequenceCount(); sequence++) { chemSequence = chemFile.getChemSequence(sequence); ! logger.info(" number of models in sequence " + sequence + ": " + chemSequence.getChemModelCount()); for (int model = 0; model < chemSequence.getChemModelCount(); model++) { chemModel = chemSequence.getChemModel(model); setOfMolecules = chemModel.getSetOfMolecules(); ! logger.info(" number of molecules in model " + model + ": " + setOfMolecules.getMoleculeCount()); for (int i = 0; i < setOfMolecules.getMoleculeCount(); i++) { Molecule m = setOfMolecules.getMolecule(i); ! ! // use Accelerated viewer if 3D coords are available ! if (GeometryTools.has3DCoordinates(m)) { ! logger.info("Viewing with 3D viewer"); ! ! try { ! JFrame frame = new JFrame("AcceleratedRenderer3DTest"); ! frame.getContentPane().setLayout(new BorderLayout()); ! ! AtomContainer atomContainer = chemModel.getAllInOneContainer(); ! AcceleratedRenderer3D renderer = new AcceleratedRenderer3D( ! new AcceleratedRenderer3DModel(atomContainer)); ! ! frame.getContentPane().add(renderer, BorderLayout.CENTER); ! ! frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); ! frame.setSize(500,500); ! frame.setVisible(true); ! } catch (Exception e) { ! logger.error("Viewing did not succeed!"); ! logger.error(e.toString()); ! } ! } else if (GeometryTools.has2DCoordinates(m)) { ! logger.info("Viewing with 2D viewer"); ! MoleculeViewer2D mv = new MoleculeViewer2D(m); ! mv.display(); ! } else { ! System.out.println("Molecule has no coordinates."); ! } } } } } *************** *** 88,92 **** String filename = args[0]; if (new File(filename).canRead()) { ! new FileReaderTest(filename); } else { System.out.println("File " + filename + " does not exist!"); --- 120,124 ---- String filename = args[0]; if (new File(filename).canRead()) { ! new Viewer(filename); } else { System.out.println("File " + filename + " does not exist!"); |