From: Egon W. <eg...@us...> - 2003-02-10 19:35:50
|
Update of /cvsroot/jmol/Jmol/src/org/openscience/jmol/app In directory sc8-pr-cvs1:/tmp/cvs-serv25080/src/org/openscience/jmol/app Modified Files: AtomTypeTable.java Log Message: Removed toolbar with non-functioning buttons (add/remove) and implemented reading of user defined atom types. Index: AtomTypeTable.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/app/AtomTypeTable.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** AtomTypeTable.java 6 Feb 2003 17:59:02 -0000 1.2 --- AtomTypeTable.java 10 Feb 2003 19:35:45 -0000 1.3 *************** *** 28,31 **** --- 28,33 ---- import org.openscience.jmol.render.AtomColors; + import org.openscience.cdk.tools.AtomTypeFactory; + import javax.swing.JTable; import javax.swing.DefaultCellEditor; *************** *** 90,94 **** public class AtomTypeTable extends JDialog implements ActionListener { ! private static String SAU = "org/openscience/jmol/Data/AtomTypes"; /* --- 92,97 ---- public class AtomTypeTable extends JDialog implements ActionListener { ! private static String SAU = "jmol_atomtypes.txt"; ! private org.openscience.cdk.tools.LoggingTool logger; /* *************** *** 106,124 **** public AtomTypeTable(JFrame fr, File UAF) { - this(fr); - try { ! ReadAtypes(new FileInputStream(UAF)); ! } catch (Exception e1) { ! try { ! URL url = this.getClass().getClassLoader().getResource(SAU); ! ! // URL url = ClassLoader.getSystemResource(SAU); ! ReadAtypes(url.openStream()); ! } catch (Exception e2) { ! System.err.println("Cannot read System AtomTypes: " + e2.toString()); ! e2.printStackTrace(); ! } } } --- 109,121 ---- public AtomTypeTable(JFrame fr, File UAF) { this(fr); try { ! if (UAF.exists()) { ! ReadAtypes(UAF.toString()); ! } else { ! ReadAtypes(SAU); ! } ! } catch (Exception exc) { ! System.err.println("Error while reading AtomTypes."); } } *************** *** 130,133 **** --- 127,132 ---- true); + logger = new org.openscience.cdk.tools.LoggingTool(this.getClass().getName()); + // Create a model of the data. atModel = new AtomTypesModel(); *************** *** 244,248 **** buttonPanel.add(OK); ! JToolBar toolbar = new JToolBar(); JButton natb = --- 243,247 ---- buttonPanel.add(OK); ! /** JToolBar toolbar = new JToolBar(); JButton natb = *************** *** 265,274 **** toolbar.add(natb); ! toolbar.add(datb); JPanel container = new JPanel(); container.setLayout(new BorderLayout()); ! container.add(toolbar, BorderLayout.NORTH); container.add(AtomTableWrapper, BorderLayout.CENTER); container.add(buttonPanel, BorderLayout.SOUTH); --- 264,273 ---- toolbar.add(natb); ! toolbar.add(datb); **/ JPanel container = new JPanel(); container.setLayout(new BorderLayout()); ! // container.add(toolbar, BorderLayout.NORTH); container.add(AtomTableWrapper, BorderLayout.CENTER); container.add(buttonPanel, BorderLayout.SOUTH); *************** *** 570,642 **** ! void ReadAtypes(InputStream is) throws Exception { ! // FIXME: this method should be removed (Egon) ! // It is superceded by CDK's TXTBasedAtomTypeConfigurator. ! ! BufferedReader r = new BufferedReader(new InputStreamReader(is), 1024); ! StringTokenizer st; ! ! AtomColors atomColors = AtomColors.getInstance(); ! ! String s; ! ! atModel.clear(); ! ! try { ! while (true) { ! s = r.readLine(); ! if (s == null) { ! break; ! } ! if (!s.startsWith("#")) { ! String name = ""; ! String rootType = ""; ! int an = 0, rl = 0, gl = 0, bl = 0; ! double mass = 0.0, vdw = 0.0, covalent = 0.0; ! st = new StringTokenizer(s, "\t ,;"); ! int nt = st.countTokens(); ! ! if (nt == 9) { ! name = st.nextToken(); ! rootType = st.nextToken(); ! String san = st.nextToken(); ! String sam = st.nextToken(); ! String svdw = st.nextToken(); ! String scov = st.nextToken(); ! String sr = st.nextToken(); ! String sg = st.nextToken(); ! String sb = st.nextToken(); ! ! try { ! mass = new Double(sam).doubleValue(); ! vdw = new Double(svdw).doubleValue(); ! covalent = new Double(scov).doubleValue(); ! an = new Integer(san).intValue(); ! rl = new Integer(sr).intValue(); ! gl = new Integer(sg).intValue(); ! bl = new Integer(sb).intValue(); ! } catch (NumberFormatException nfe) { ! throw new JmolException("AtomTypeTable.ReadAtypes", ! "Malformed Number"); ! } ! ! AtomType at = new AtomType(name, rootType, an, mass, vdw, covalent); ! // atomColors.setAtomColor(at, new Color(rl, gl, bl)); ! ! atModel.updateAtomType(at.getBaseAtomType()); ! ! } else { ! throw new JmolException("AtomTypeTable.ReadAtypes", ! "Wrong Number of fields"); ! } ! } ! } // end while ! ! is.close(); ! ! } // end Try ! catch (IOException e) { ! } ! } --- 569,584 ---- ! void ReadAtypes(String configFile) throws Exception { ! // System.out.print("Reading config file... "); ! AtomTypeFactory atf = new AtomTypeFactory(configFile); ! ! org.openscience.cdk.AtomType[] types = atf.getAllAtomTypes(); ! System.out.println("Read atom types: " + types.length); ! for (int i=0; i<types.length; i++) { ! // convert all AtomType's to BaseAtomType and add then ! // to the list ! atModel.updateAtomType(BaseAtomType.get(types[i])); ! } ! // System.out.println("done."); } *************** *** 649,653 **** } ! public synchronized Enumeration elements() { return atModel.elements(); } --- 591,628 ---- } ! /** ! * Configures an atom. Finds the correct element type ! * by looking at the atoms atom type id (atom.getID()). ! * ! * @param atom The atom to be configured ! * @return The configured atom ! */ ! public Atom configure(Atom atom) { ! try { ! BaseAtomType at = get(atom.getID()); ! atom.setMaxBondOrder(at.getMaxBondOrder()); ! atom.setMaxBondOrderSum(at.getMaxBondOrderSum()); ! atom.setVanderwaalsRadius(at.getVanderwaalsRadius()); ! atom.setCovalentRadius(at.getCovalentRadius()); ! atom.setProperty("org.openscience.jmol.color", at.getColor()); ! if (at.getAtomicNumber() != 0) { ! atom.setAtomicNumber(at.getAtomicNumber()); ! } else { ! logger.debug("Did not configure atomic number: AT.an=" + at.getAtomicNumber()); ! } ! if (at.getExactMass() > 0.0) { ! atom.setExactMass(at.getExactMass()); ! } else { ! logger.debug("Did not configure mass: AT.mass=" + at.getAtomicNumber()); ! } ! } catch (Exception exc) { ! logger.warn("Could not configure atom with unknown ID: " + ! atom.toString() + " + (id=" + atom.getID() + ")"); ! } ! logger.debug("Configured " + atom.toString()); ! return atom; ! } ! ! public synchronized Enumeration elements() { return atModel.elements(); } |