From: <sh...@us...> - 2008-12-10 17:13:57
|
Revision: 13521 http://cdk.svn.sourceforge.net/cdk/?rev=13521&view=rev Author: shk3 Date: 2008-12-10 17:13:54 +0000 (Wed, 10 Dec 2008) Log Message: ----------- more popup menu actions (also proper popup for pseudo atoms) Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java jchempaint/trunk/src/main/org/openscience/jchempaint/SwingPopupModule.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/CleanupAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/JCPAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPBundle.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeAtomSymbolAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToPseudoAtomAction.java Removed Paths: ------------- jchempaint/trunk/src/main/org/openscience/jchempaint/CDKPopupMenu.java Deleted: jchempaint/trunk/src/main/org/openscience/jchempaint/CDKPopupMenu.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/CDKPopupMenu.java 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/CDKPopupMenu.java 2008-12-10 17:13:54 UTC (rev 13521) @@ -1,58 +0,0 @@ -/* - * $RCSfile$ - * $Author: egonw $ - * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ - * $Revision: 7634 $ - * - * Copyright (C) 1997-2008 Stefan Kuhn - * - * Contact: cdk...@li... - * - * 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. - * All we ask is that proper credit is given for our work, which includes - * - but is not limited to - adding the above copyright notice to the beginning - * of your source code files, and to any copyright notice that you may distribute - * with programs based on this work. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - */ -package org.openscience.jchempaint; - -import javax.swing.JPopupMenu; - -import org.openscience.cdk.interfaces.IChemObject; - -/** - * Basically, identical to the JPopupMenu class, except that this menu - * can also contain the source for which it was poped up. - * - * <p>IMPORTANT: The very nature of this design can lead to race conditions. - * It would be better that the Event passed to the popup menu would define - * the IChemObject source. - * - */ -public class CDKPopupMenu extends JPopupMenu { - - private static final long serialVersionUID = -235498895062628065L; - - private IChemObject source; - - public void setSource(IChemObject object) { - this.source = object; - } - - public IChemObject getSource() { - return this.source; - } - -} Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2008-12-10 17:13:54 UTC (rev 13521) @@ -117,14 +117,14 @@ public void setupPopupMenus(SwingPopupModule inputAdapter) { + if (inputAdapter.getPopupMenu(PseudoAtom.class) == null) + { + inputAdapter.setPopupMenu(PseudoAtom.class, new JChemPaintPopupMenu(this, "pseudo")); + } if (inputAdapter.getPopupMenu(Atom.class) == null) { inputAdapter.setPopupMenu(Atom.class, new JChemPaintPopupMenu(this, "atom")); } - if (inputAdapter.getPopupMenu(PseudoAtom.class) == null) - { - inputAdapter.setPopupMenu(PseudoAtom.class, new JChemPaintPopupMenu(this, "pseudo")); - } if (inputAdapter.getPopupMenu(Bond.class) == null) { inputAdapter.setPopupMenu(Bond.class, new JChemPaintPopupMenu(this, "bond")); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java 2008-12-10 17:13:54 UTC (rev 13521) @@ -1,12 +1,12 @@ /* * $RCSfile$ - * $Author: shk3 $ - * $Date: 2008-07-02 12:33:38 +0100 (Wed, 02 Jul 2008) $ - * $Revision: 11482 $ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ * - * Copyright (C) 1997-2007 The JChemPaint project + * Copyright (C) 1997-2008 Christoph Steinbeck * - * Contact: jch...@li... + * Contact: cdk...@li... * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -20,7 +20,9 @@ * 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. + * GNU Lesser Gener * @cdk.module jchempaint + * @author steinbeck +al 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 @@ -33,24 +35,32 @@ import javax.swing.JCheckBoxMenuItem; import javax.swing.JMenu; import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; +import org.openscience.cdk.interfaces.IChemObject; import org.openscience.cdk.tools.LoggingTool; import org.openscience.jchempaint.action.JCPAction; /** * A pop-up menu for JChemPaint * - * @cdk.module jchempaint - * @author steinbeck */ -public class JChemPaintPopupMenu extends CDKPopupMenu +public class JChemPaintPopupMenu extends JPopupMenu { private static final long serialVersionUID = -1172105004348414589L; private LoggingTool logger; private JCPAction jcpaction; + private IChemObject source; + + public void setSource(IChemObject object) { + this.source = object; + } + + public IChemObject getSource() { + return this.source; + } - /** * Constructor for the JChemPaintPopupMenu object * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/SwingPopupModule.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/SwingPopupModule.java 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/SwingPopupModule.java 2008-12-10 17:13:54 UTC (rev 13521) @@ -1,3 +1,31 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ package org.openscience.jchempaint; import java.util.Hashtable; @@ -13,7 +41,7 @@ private LoggingTool logger = new LoggingTool(this); - private static Hashtable<String, CDKPopupMenu> popupMenus = new Hashtable<String, CDKPopupMenu>(); + private static Hashtable<String, JChemPaintPopupMenu> popupMenus = new Hashtable<String, JChemPaintPopupMenu>(); private RenderPanel renderer; @@ -36,10 +64,10 @@ * Sets the popupMenu attribute of the Controller2D object * *@param someClass The new popupMenu value - *@param menu The new popupMenu value + *@param jchemPaintPopupMenu The new popupMenu value */ - public void setPopupMenu(Class someClass, CDKPopupMenu menu) { - SwingPopupModule.popupMenus.put(someClass.getName(), menu); + public void setPopupMenu(Class someClass, JChemPaintPopupMenu jchemPaintPopupMenu) { + SwingPopupModule.popupMenus.put(someClass.getName(), jchemPaintPopupMenu); } @@ -50,12 +78,12 @@ *@param someClass Description of the Parameter *@return The popupMenu value */ - public CDKPopupMenu getPopupMenu(Class classSearched) { + public JChemPaintPopupMenu getPopupMenu(Class classSearched) { logger.debug("Searching popup for: ", classSearched.getName()); while (classSearched.getName().startsWith("org.openscience.cdk")) { logger.debug("Searching popup for: ", classSearched.getName()); if (SwingPopupModule.popupMenus.containsKey(classSearched.getName())) { - return (CDKPopupMenu) SwingPopupModule.popupMenus.get(classSearched.getName()); + return (JChemPaintPopupMenu) SwingPopupModule.popupMenus.get(classSearched.getName()); } else { logger.debug(" recursing into super class"); classSearched = classSearched.getSuperclass(); @@ -71,7 +99,7 @@ objectInRange = renderer.getRenderer().getRenderer2DModel().getHighlightedBond(); if(objectInRange==null) objectInRange = chemModelRelay.getIChemModel(); - CDKPopupMenu popupMenu = getPopupMenu(objectInRange.getClass()); + JChemPaintPopupMenu popupMenu = getPopupMenu(objectInRange.getClass()); if (popupMenu != null) { popupMenu.setSource(objectInRange); Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeAtomSymbolAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeAtomSymbolAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeAtomSymbolAction.java 2008-12-10 17:13:54 UTC (rev 13521) @@ -0,0 +1,92 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Egon Willighagen, Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.cdk.config.IsotopeFactory; +import org.openscience.cdk.controller.IControllerModel; +import org.openscience.cdk.interfaces.IAtom; +import org.openscience.cdk.interfaces.IAtomContainer; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.interfaces.IPseudoAtom; +import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; + + +/** + * changes the atom symbol + */ +public class ChangeAtomSymbolAction extends JCPAction +{ + + private static final long serialVersionUID = -8502905723573311893L; + + public void actionPerformed(ActionEvent event) + { + logger.debug("About to change atom type of relevant atom!"); + IControllerModel c2dm = jcpPanel.get2DHub().getController2DModel(); + IAtom atomInRange = null; + IChemObject object = getSource(event); + logger.debug("Source of call: ", object); + if (object instanceof IAtom) + { + atomInRange = (IAtom) object; + } else + { + atomInRange = jcpPanel.getRenderPanel().getRenderer().getRenderer2DModel().getHighlightedAtom(); + } + String s = event.getActionCommand(); + String symbol = s.substring(s.indexOf("@") + 1); + //if the atom is a pseudoatom, we must convert it back to a normal atom + if(atomInRange instanceof IPseudoAtom){ + IPseudoAtom atom = (IPseudoAtom)atomInRange; + IAtomContainer relevantContainer = ChemModelManipulator.getRelevantAtomContainer(jcpPanel.getChemModel(), atom); + IAtom newAtom = atom.getBuilder().newAtom(symbol, atom.getPoint2d()); + AtomContainerManipulator.replaceAtomByAtom(relevantContainer, + atom, newAtom); + }else{ + String formerSymbol = atomInRange.getSymbol(); + atomInRange.setSymbol(symbol); + // modify the current atom symbol + c2dm.setDrawElement(symbol); + } + // configure the atom, so that the atomic number matches the symbol + try + { + IsotopeFactory.getInstance(atomInRange.getBuilder()).configure(atomInRange); + } catch (Exception exception) + { + logger.error("Error while configuring atom"); + logger.debug(exception); + } + jcpPanel.get2DHub().updateView(); + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeAtomSymbolAction.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/CleanupAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CleanupAction.java 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/CleanupAction.java 2008-12-10 17:13:54 UTC (rev 13521) @@ -46,6 +46,9 @@ import org.openscience.cdk.layout.StructureDiagramGenerator; import org.openscience.cdk.layout.TemplateHandler; import org.openscience.cdk.nonotify.NoNotificationChemObjectBuilder; +import org.openscience.cdk.renderer.LogicalSelection; +import org.openscience.cdk.renderer.selection.RectangleSelection; +import org.openscience.cdk.renderer.selection.ShapeSelection; /** * Triggers the invocation of the structure diagram generator @@ -125,7 +128,7 @@ } IChemModelRelay hub = jcpPanel.get2DHub(); - hub.getIJava2DRenderer().getRenderer2DModel().setSelectedPart(new AtomContainer()); + hub.getIJava2DRenderer().getRenderer2DModel().setSelection(new LogicalSelection(LogicalSelection.Type.NONE)); jcpPanel.setIsNewChemModel(true); hub.updateView(); } Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToPseudoAtomAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToPseudoAtomAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToPseudoAtomAction.java 2008-12-10 17:13:54 UTC (rev 13521) @@ -0,0 +1,78 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.cdk.Atom; +import org.openscience.cdk.PseudoAtom; +import org.openscience.cdk.interfaces.IAtom; +import org.openscience.cdk.interfaces.IAtomContainer; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; +; + +/** + * Converts to and from pseudo atoms + */ +public class ConvertToPseudoAtomAction extends JCPAction { + + private static final long serialVersionUID = -598284013998335002L; + + public void actionPerformed(ActionEvent event) { + logger.debug("Converting to: ", type); + IChemObject object = getSource(event); + org.openscience.cdk.interfaces.IChemModel model = jcpPanel.getChemModel(); + if (object != null) { + if (object instanceof Atom) { + if(type.equals("normal")){ + PseudoAtom pseudo = (PseudoAtom)object; + IAtomContainer relevantContainer = ChemModelManipulator.getRelevantAtomContainer(model, pseudo); + IAtom normal = relevantContainer.getBuilder().newAtom(pseudo); + normal.setSymbol("C"); + AtomContainerManipulator.replaceAtomByAtom(relevantContainer, + pseudo,normal); + }else{ + Atom atom = (Atom)object; + IAtomContainer relevantContainer = ChemModelManipulator.getRelevantAtomContainer(model, atom); + PseudoAtom pseudo = new PseudoAtom(atom); + pseudo.setLabel(type); + AtomContainerManipulator.replaceAtomByAtom(relevantContainer, + atom, pseudo); + } + } else { + logger.error("Object not an Atom! Cannot convert into a PseudoAtom!"); + } + } else { + logger.warn("Cannot convert a null object!"); + } + jcpPanel.get2DHub().updateView(); + } +} Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java 2008-12-10 17:13:54 UTC (rev 13521) @@ -31,11 +31,13 @@ import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.event.ActionEvent; +import java.util.Iterator; import javax.swing.JOptionPane; import org.openscience.cdk.Atom; -import org.openscience.cdk.applications.undoredo.RemoveAtomsAndBondsEdit; +import org.openscience.cdk.Bond; +import org.openscience.cdk.Reaction; import org.openscience.cdk.controller.MoveModule; import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.interfaces.IAtomContainer; @@ -45,7 +47,10 @@ import org.openscience.cdk.renderer.ISelection; import org.openscience.cdk.renderer.LogicalSelection; import org.openscience.cdk.renderer.RendererModel; +import org.openscience.cdk.renderer.selection.RectangleSelection; +import org.openscience.cdk.renderer.selection.ShapeSelection; import org.openscience.cdk.tools.manipulator.ChemModelManipulator; +import org.openscience.cdk.tools.manipulator.ReactionManipulator; import org.openscience.jchempaint.action.CopyPasteAction.JcpSelection; /** @@ -134,44 +139,58 @@ renderModel.setSelection(allSelection); jcpPanel.setMoveAction(); jcpPanel.get2DHub().setActiveDrawModule(new MoveModule(jcpPanel.get2DHub())); - } /*else if (type.equals("selectMolecule")) { + } else if (type.equals("selectMolecule")) { IChemObject object = getSource(event); + IAtomContainer relevantAtomContainer=null; if (object instanceof Atom) { - renderModel.setSelectedPart(ChemModelManipulator.getRelevantAtomContainer(jcpModel.getChemModel(),(Atom)object)); + relevantAtomContainer = ChemModelManipulator.getRelevantAtomContainer(jcpPanel.getChemModel(),(Atom)object); } else if (object instanceof org.openscience.cdk.interfaces.IBond) { - renderModel.setSelectedPart(ChemModelManipulator.getRelevantAtomContainer(jcpModel.getChemModel(),(Bond)object)); + relevantAtomContainer = ChemModelManipulator.getRelevantAtomContainer(jcpPanel.getChemModel(),(Bond)object); } else { logger.warn("selectMolecule not defined for the calling object ", object); } - jcpModel.fireChange(); + if(relevantAtomContainer!=null){ + ShapeSelection container = new RectangleSelection(); + for(IAtom atom:relevantAtomContainer.atoms()){ + container.atoms.add(atom); + } + for(IBond bond:relevantAtomContainer.bonds()){ + container.bonds.add(bond); + } + renderModel.setSelection(container); + } } else if (type.equals("selectFromChemObject")) { // FIXME: implement for others than Reaction, Atom, Bond IChemObject object = getSource(event); if (object instanceof Atom) { - IAtomContainer container = new org.openscience.cdk.AtomContainer(); - container.addAtom((Atom) object); - renderModel.setSelectedPart(container); - jcpModel.fireChange(); + ShapeSelection container = new RectangleSelection(); + container.atoms.add((Atom) object); + renderModel.setSelection(container); } else if (object instanceof org.openscience.cdk.interfaces.IBond) { - IAtomContainer container = new org.openscience.cdk.AtomContainer(); - container.addBond((Bond) object); - renderModel.setSelectedPart(container); - jcpModel.fireChange(); + ShapeSelection container = new RectangleSelection(); + container.bonds.add((Bond) object); + renderModel.setSelection(container); } else if (object instanceof Reaction) { - IAtomContainer wholeModel = jcpModel.getChemModel().getBuilder().newAtomContainer(); + IAtomContainer wholeModel = jcpPanel.getChemModel().getBuilder().newAtomContainer(); Iterator containers = ReactionManipulator.getAllAtomContainers((Reaction)object).iterator(); while (containers.hasNext()) { wholeModel.add((IAtomContainer)containers.next()); } - renderModel.setSelectedPart(wholeModel); - jcpModel.fireChange(); + ShapeSelection container = new RectangleSelection(); + for(IAtom atom:wholeModel.atoms()){ + container.atoms.add(atom); + } + for(IBond bond:wholeModel.bonds()){ + container.bonds.add(bond); + } + renderModel.setSelection(container); } else { logger.warn("Cannot select everything in : ", object); } - } + }/* else if (type.equals("selectReactionReactants")) { IChemObject object = getSource(event); if (object instanceof Reaction) { Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/JCPAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/JCPAction.java 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/JCPAction.java 2008-12-10 17:13:54 UTC (rev 13521) @@ -38,9 +38,9 @@ import org.openscience.cdk.interfaces.IChemObject; import org.openscience.cdk.tools.LoggingTool; -import org.openscience.jchempaint.CDKPopupMenu; import org.openscience.jchempaint.JChemPaintMenuBar; import org.openscience.jchempaint.JChemPaintPanel; +import org.openscience.jchempaint.JChemPaintPopupMenu; /** * Superclass of all JChemPaint GUI actions @@ -229,14 +229,14 @@ { Container parent = ((JMenuItem) source).getComponent().getParent(); // logger.debug("event source parent: " + parent); - if (parent instanceof CDKPopupMenu) + if (parent instanceof JChemPaintPopupMenu) { - return ((CDKPopupMenu) parent).getSource(); + return ((JChemPaintPopupMenu) parent).getSource(); } else if (parent instanceof JPopupMenu) { // assume that the top menu is indeed a CDKPopupMenu logger.debug("Submenu... need to recurse into CDKPopupMenu..."); - while (!(parent instanceof CDKPopupMenu)) + while (!(parent instanceof JChemPaintPopupMenu)) { logger.debug(" Parent instanceof ", parent.getClass().getName()); if (parent instanceof JPopupMenu) @@ -252,7 +252,7 @@ return null; } } - return ((CDKPopupMenu) parent).getSource(); + return ((JChemPaintPopupMenu) parent).getSource(); } } return null; Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPBundle.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPBundle.properties 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPBundle.properties 2008-12-10 17:13:54 UTC (rev 13521) @@ -20,6 +20,8 @@ atomConvertTo=Convert into... # (reactionMenuTitle) menu title for Reaction popup menu atomMenuTitle=Atom Popup Menu +pseudoMenuTitle=Pseudo Atom Popup Menu +makeNormal=Into a Normal Atom atomToPseudoAtom=Into a PseudoAtom atomToResidueLocator=Into a EnzymeResidueLocator atomType=Atom Type Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties 2008-12-10 17:13:54 UTC (rev 13521) @@ -77,7 +77,7 @@ atompopup=selectFromChemObject selectMolecule cut - @symbolChange \ @isotopeChange - convertToRadical @hydrogen @reaction - runValidate - \ showChemObjectProperties showACProperties -pseudopopup=selectFromChemObject cut - @reaction - runValidate +pseudopopup=selectFromChemObject cut - makeNormal - @reaction - runValidate reaction=addReactantToNewReaction addReactantToExistingReaction \ addProductToNewReaction addProductToExistingReaction symbolChange=@commonSymbols @halogenSymbols @nobelSymbols \ Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2008-12-10 17:13:54 UTC (rev 13521) @@ -77,7 +77,7 @@ atompopup=selectFromChemObject selectMolecule cut - @symbolChange \ @isotopeChange - convertToRadical @hydrogen @reaction - runValidate - \ showChemObjectProperties showACProperties -pseudopopup=selectFromChemObject cut - @reaction - runValidate +pseudopopup=selectFromChemObject cut - makeNormal - @reaction - runValidate reaction=addReactantToNewReaction addReactantToExistingReaction \ addProductToNewReaction addProductToExistingReaction symbolChange=@commonSymbols @halogenSymbols @nobelSymbols \ Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-10 15:44:56 UTC (rev 13520) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-10 17:13:54 UTC (rev 13521) @@ -92,7 +92,7 @@ cutAction=org.openscience.jchempaint.action.EditAction@cut cutSelectedAction=org.openscience.jchempaint.action.EditAction@cutSelected selectAllAction=org.openscience.jchempaint.action.EditAction@selectAll -selectMoleculeAction=org.openscience.cdk.applications.jchempaint.action.EditAction@selectMolecule +selectMoleculeAction=org.openscience.jchempaint.action.EditAction@selectMolecule copyAction=org.openscience.jchempaint.action.CopyPasteAction@copy pasteAction=org.openscience.jchempaint.action.CopyPasteAction@paste addImplHydrogenAction=org.openscience.cdk.applications.jchempaint.action.AddHydrogenAction@implicit @@ -110,41 +110,42 @@ flipVerticalAction=org.openscience.cdk.applications.jchempaint.action.FlipAction@vertical # Change symbol actions -symbolBAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@B -symbolCAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@C -symbolOAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@O -symbolNAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@N -symbolSAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@S -symbolHAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@H -symbolPAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@P -symbolSAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@S -symbolClAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Cl -symbolBrAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Br -symbolIAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@I -symbolFAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@F -symbolHeAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@He -symbolNeAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Ne -symbolArAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Ar -symbolLiAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Li -symbolBeAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Be -symbolNaAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Na -symbolMgAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Mg -symbolAlAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Al -symbolSiAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Si -symbolFeAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Fe -symbolCoAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Co -symbolNiAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Ni -symbolCuAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Cu -symbolZnAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Zn -symbolAgAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Ag -symbolPtAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Pt -symbolHgAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Hg -symbolSnAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Sn -symbolAuAction=org.openscience.cdk.applications.jchempaint.action.ChangeAtomSymbolAction@Au +symbolBAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@B +symbolCAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@C +symbolOAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@O +symbolNAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@N +symbolSAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@S +symbolHAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@H +symbolPAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@P +symbolSAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@S +symbolClAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Cl +symbolBrAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Br +symbolIAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@I +symbolFAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@F +symbolHeAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@He +symbolNeAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Ne +symbolArAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Ar +symbolLiAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Li +symbolBeAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Be +symbolNaAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Na +symbolMgAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Mg +symbolAlAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Al +symbolSiAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Si +symbolFeAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Fe +symbolCoAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Co +symbolNiAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Ni +symbolCuAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Cu +symbolZnAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Zn +symbolAgAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Ag +symbolPtAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Pt +symbolHgAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Hg +symbolSnAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Sn +symbolAuAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@Au -pseudoStarAction=org.openscience.cdk.applications.jchempaint.action.ConvertToPseudoAtomAction@* -pseudoRAction=org.openscience.cdk.applications.jchempaint.action.ConvertToPseudoAtomAction@R +pseudoStarAction=org.openscience.jchempaint.action.ConvertToPseudoAtomAction@* +pseudoRAction=org.openscience.jchempaint.action.ConvertToPseudoAtomAction@R convertToRadicalAction=org.openscience.cdk.applications.jchempaint.action.ConvertToRadicalAction +makeNormalAction=org.openscience.jchempaint.action.ConvertToPseudoAtomAction@normal # Isotope change actions majorAction=org.openscience.cdk.applications.jchempaint.action.ChangeIsotopeAction@major @@ -197,7 +198,7 @@ licenseAction=org.openscience.cdk.applications.jchempaint.action.LicenseAction # Popup specific actions -selectFromChemObjectAction=org.openscience.cdk.applications.jchempaint.action.EditAction@selectFromChemObject +selectFromChemObjectAction=org.openscience.jchempaint.action.EditAction@selectFromChemObject selectReactantsAction=org.openscience.cdk.applications.jchempaint.action.EditAction@selectReactionReactants selectProductsAction=org.openscience.cdk.applications.jchempaint.action.EditAction@selectReactionProducts showDumpAction=org.openscience.cdk.applications.jchempaint.action.ShowChemObjectDumpAction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2008-12-11 17:46:51
|
Revision: 13543 http://cdk.svn.sourceforge.net/cdk/?rev=13543&view=rev Author: shk3 Date: 2008-12-11 17:46:45 +0000 (Thu, 11 Dec 2008) Log Message: ----------- more functionality Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/RendererModelEditor.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeIsotopeAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToRadicalAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAtomContainerPropsAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditChemObjectPropsAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/AtomContainerEditor.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/AtomEditor.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/BondEditor.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ChemObjectEditor.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ChemObjectPropertyDialog.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/PseudoAtomEditor.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ReactionEditor.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java 2008-12-11 17:21:10 UTC (rev 13542) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -174,14 +174,17 @@ JMenu me = createMenu(jcpPanel, menuTitle); menu.add(me); } else if (itemKeys[i].endsWith("+")) { - JMenuItem mi = createMenuItem(jcpPanel, - itemKeys[i].substring(0, itemKeys[i].length() - 1),true,false + JMenuItem mi; + if(itemKeys[i].endsWith("++")) + mi = createMenuItem(jcpPanel, + itemKeys[i].substring(0, itemKeys[i].length() - 2), + true, true ); - if(itemKeys[i].substring(0, itemKeys[i].length() - 1).equals("addImplHydrogen")) - ((JCheckBoxMenuItem)mi).setSelected(true); - if(itemKeys[i].substring(0, itemKeys[i].length() - 1).equals("insertstructure") && !jcpPanel.getGuistring().equals("applet")) - ((JCheckBoxMenuItem)mi).setSelected(true); - // default off, because we cannot turn it on anywhere (yet) + else + mi = createMenuItem(jcpPanel, + itemKeys[i].substring(0, itemKeys[i].length() - 1), + true, false + ); menu.add(mi); } else { Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeIsotopeAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeIsotopeAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeIsotopeAction.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,101 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Egon Willighagen, Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.cdk.Atom; +import org.openscience.cdk.config.IsotopeFactory; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.interfaces.IIsotope; + + +/** + * Changes the isotope for a selected atom + * + */ +public class ChangeIsotopeAction extends JCPAction +{ + + private static final long serialVersionUID = -4692219842740123315L; + + public void actionPerformed(ActionEvent event) + { + logger.debug("About to change atom type of relevant atom!"); + IChemObject object = getSource(event); + logger.debug("Source of call: ", object); + if (object instanceof Atom) + { + Atom atom = (Atom) object; + int isotopeNumber = 0; + try + { + IIsotope isotope = IsotopeFactory.getInstance(atom.getBuilder()). + getMajorIsotope(atom.getSymbol()); + isotopeNumber = isotope.getMassNumber(); + } catch (Exception exception) + { + logger.error("Error while configuring atom"); + logger.debug(exception); + } + // adapt for menu chosen + if (type.equals("major")) + { + // that's the default + } else if (type.equals("majorPlusOne")) + { + isotopeNumber++; + } else if (type.equals("majorPlusTwo")) + { + isotopeNumber++; + isotopeNumber++; + } else if (type.equals("majorPlusThree")) + { + isotopeNumber++; + isotopeNumber++; + isotopeNumber++; + } else if (type.equals("majorMinusOne")) + { + isotopeNumber--; + } else if (type.equals("majorMinusTwo")) + { + isotopeNumber--; + isotopeNumber--; + } else if (type.equals("majorMinusThree")) + { + isotopeNumber--; + isotopeNumber--; + isotopeNumber--; + } + atom.setMassNumber(isotopeNumber); + jcpPanel.get2DHub().updateView(); + } + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeIsotopeAction.java ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToRadicalAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToRadicalAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToRadicalAction.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,86 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import javax.swing.JOptionPane; + +import org.openscience.cdk.Atom; +import org.openscience.cdk.SingleElectron; +import org.openscience.cdk.exception.CDKException; +import org.openscience.cdk.interfaces.IAtomContainer; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.tools.LonePairElectronChecker; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; + +/** + */ +public class ConvertToRadicalAction extends JCPAction { + + private static final long serialVersionUID = 1898335761308427006L; + + public void actionPerformed(ActionEvent event) { + logger.debug("Converting to radical: ", type); + IChemObject object = getSource(event); + org.openscience.cdk.interfaces.IChemModel model = jcpPanel.getChemModel(); + if (object != null) { + if (object instanceof Atom) { + Atom atom = (Atom)object; + + IAtomContainer relevantContainer = ChemModelManipulator.getRelevantAtomContainer(model, atom); + double number=0; + try { + number = new LonePairElectronChecker().getFreeLonePairs(atom, relevantContainer); + } catch (CDKException e) { + e.getMessage(); + logger.error(e.getMessage()); + logger.debug(e); } + + if(number > 0.0) + { + SingleElectron singleElectron = new SingleElectron(atom); + relevantContainer.addSingleElectron(singleElectron); + logger.info("Added single electron to atom"); + logger.debug("new AC: ", relevantContainer); + + } + else JOptionPane.showMessageDialog(jcpPanel,"A radical cannot be added to this atom." + + " Re-try with less hydrogens."); + + + } else { + logger.error("Object not an Atom! Cannot convert into a radical!"); + } + } else { + logger.warn("Cannot convert a null object!"); + } + jcpPanel.get2DHub().updateView(); + } +} Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAtomContainerPropsAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAtomContainerPropsAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAtomContainerPropsAction.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,66 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Egon Willighagen, Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.cdk.Atom; +import org.openscience.cdk.Bond; +import org.openscience.cdk.interfaces.IAtomContainer; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; +import org.openscience.jchempaint.dialog.editor.AtomContainerEditor; +import org.openscience.jchempaint.dialog.editor.ChemObjectEditor; +import org.openscience.jchempaint.dialog.editor.ChemObjectPropertyDialog; + +/** + * Action for triggering an edit of a IChemObject + * + */ +public class EditAtomContainerPropsAction extends JCPAction { + + private static final long serialVersionUID = 8489495722307245626L; + + public void actionPerformed(ActionEvent event) { + IChemObject object = getSource(event); + logger.debug("Showing object properties for: ", object); + ChemObjectEditor editor = new AtomContainerEditor(); + IAtomContainer relevantContainer = null; + if(object instanceof Atom) + relevantContainer = ChemModelManipulator.getRelevantAtomContainer(jcpPanel.getChemModel(),(Atom)object); + if(object instanceof Bond) + relevantContainer = ChemModelManipulator.getRelevantAtomContainer(jcpPanel.getChemModel(),(Bond)object); + editor.setChemObject(relevantContainer); + ChemObjectPropertyDialog frame = + new ChemObjectPropertyDialog(jcpPanel.get2DHub(), editor); + frame.pack(); + frame.setVisible(true); + } +} + Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditChemObjectPropsAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditChemObjectPropsAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditChemObjectPropsAction.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,78 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Egon Willighagen, Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.cdk.Atom; +import org.openscience.cdk.PseudoAtom; +import org.openscience.cdk.Reaction; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.jchempaint.dialog.editor.AtomEditor; +import org.openscience.jchempaint.dialog.editor.BondEditor; +import org.openscience.jchempaint.dialog.editor.ChemObjectEditor; +import org.openscience.jchempaint.dialog.editor.ChemObjectPropertyDialog; +import org.openscience.jchempaint.dialog.editor.PseudoAtomEditor; +import org.openscience.jchempaint.dialog.editor.ReactionEditor; + +/** + * Action for triggering an edit of a IChemObject + * + */ +public class EditChemObjectPropsAction extends JCPAction { + + private static final long serialVersionUID = 7123137508085454087L; + + public void actionPerformed(ActionEvent event) { + IChemObject object = getSource(event); + logger.debug("Showing object properties for: ", object); + ChemObjectEditor editor = null; + if (object instanceof PseudoAtom) { + editor = new PseudoAtomEditor(); + } + else if (object instanceof Atom) { + editor = new AtomEditor(jcpPanel.getChemModel()); + } + else if (object instanceof Reaction) { + editor = new ReactionEditor(); + } + else if (object instanceof org.openscience.cdk.interfaces.IBond) { + editor = new BondEditor(); + } + + if (editor != null) { + editor.setChemObject((org.openscience.cdk.ChemObject)object); + ChemObjectPropertyDialog frame = + new ChemObjectPropertyDialog(jcpPanel.get2DHub(),editor); + frame.pack(); + frame.show(); + } + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditChemObjectPropsAction.java ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/AtomContainerEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/AtomContainerEditor.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/AtomContainerEditor.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,73 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog.editor; + +import javax.swing.JTextField; + +import org.openscience.cdk.CDKConstants; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.interfaces.IAtomContainer; + +/** + */ +public class AtomContainerEditor extends ChemObjectEditor { + + private static final long serialVersionUID = -5106331683641108940L; + + JTextField titleField; + + public AtomContainerEditor() { + super(); + constructPanel(); + } + + private void constructPanel() { + titleField = new JTextField(30); + addField("Title", titleField); + } + + public void setChemObject(IChemObject object) { + if (object instanceof IAtomContainer) { + source = object; + // update table contents + IAtomContainer container = (IAtomContainer)source; + String title = ""; + if (container.getProperty(CDKConstants.TITLE) != null) title = container.getProperty(CDKConstants.TITLE).toString(); + titleField.setText(title); + } else { + throw new IllegalArgumentException("Argument must be an AtomContainer"); + } + } + + public void applyChanges() { + source.setProperty(CDKConstants.TITLE, titleField.getText()); + } +} + + Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/AtomEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/AtomEditor.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/AtomEditor.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,136 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog.editor; + +import java.io.IOException; + +import javax.swing.JSpinner; +import javax.swing.JTextField; +import javax.swing.SpinnerNumberModel; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.Document; + +import org.openscience.cdk.PseudoAtom; +import org.openscience.cdk.config.IsotopeFactory; +import org.openscience.cdk.interfaces.IAtom; +import org.openscience.cdk.interfaces.IAtomContainer; +import org.openscience.cdk.interfaces.IChemModel; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.tools.LoggingTool; +import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; + +/** + */ +public class AtomEditor extends ChemObjectEditor { + + private static final long serialVersionUID = -6693485657147158966L; + + JTextField symbolField; + JSpinner hCountField; + JSpinner formalChargeField; + IChemModel chemModel; + + public AtomEditor(IChemModel chemModel) { + super(); + constructPanel(); + this.chemModel=chemModel; + super.mayclose=false; + } + + private void constructPanel() { + symbolField = new JTextField(4); + symbolField.getDocument().addDocumentListener(new MyDocumentListener(this)); + addField("Symbol", symbolField); + hCountField = new JSpinner(new SpinnerNumberModel()); + addField("H Count", hCountField); + formalChargeField = new JSpinner(new SpinnerNumberModel()); + addField("Formal Charge", formalChargeField); + } + + public void setChemObject(IChemObject object) { + if (object instanceof IAtom) { + source = object; + // update table contents + IAtom atom = (IAtom)source; + symbolField.setText(atom.getSymbol()); + hCountField.setValue(new Integer(atom.getHydrogenCount()==null ? 0 : atom.getHydrogenCount())); + formalChargeField.setValue(new Integer(atom.getFormalCharge())); + } else { + throw new IllegalArgumentException("Argument must be an Atom"); + } + } + + public void applyChanges() { + IAtom atom = (IAtom)source; + try{ + if(IsotopeFactory.getInstance(atom.getBuilder()).getElement(symbolField.getText())!=null){ + atom.setSymbol(symbolField.getText()); + atom.setHydrogenCount(((Integer)hCountField.getValue()).intValue()); + atom.setFormalCharge(((Integer)formalChargeField.getValue()).intValue()); + }else{ + IAtomContainer relevantContainer = ChemModelManipulator.getRelevantAtomContainer(chemModel, atom); + PseudoAtom pseudo = new PseudoAtom(atom); + pseudo.setLabel(symbolField.getText()); + AtomContainerManipulator.replaceAtomByAtom(relevantContainer, + atom, pseudo); + } + }catch(IOException ex){ + atom.setSymbol(symbolField.getText()); + atom.setHydrogenCount(((Integer)hCountField.getValue()).intValue()); + atom.setFormalCharge(((Integer)formalChargeField.getValue()).intValue()); + new LoggingTool(this).error("IOException when trying to test element symbol"); + } + } + + class MyDocumentListener implements DocumentListener { + AtomEditor atomEditor; + public MyDocumentListener(AtomEditor atomEditor){ + this.atomEditor = atomEditor; + } + public void insertUpdate(DocumentEvent e) { + checkValidity(e); + } + public void removeUpdate(DocumentEvent e) { + checkValidity(e); + } + private void checkValidity(DocumentEvent e){ + if(((Document)e.getDocument()).getLength()==0) + atomEditor.mayclose=false; + else + atomEditor.mayclose=true; + } + public void changedUpdate(DocumentEvent e) { + //Plain text components do not fire these events + } + } +} + + Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/BondEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/BondEditor.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/BondEditor.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,81 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog.editor; + +import javax.swing.JComboBox; + +import org.openscience.cdk.interfaces.IBond; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.interfaces.IBond.Order; + +/** + */ +public class BondEditor extends ChemObjectEditor { + + private static final long serialVersionUID = -5262566515479485581L; + + JComboBox orderField; + + public BondEditor() { + super(); + constructPanel(); + } + + private void constructPanel() { + String[] orderString = { Order.SINGLE.toString(), Order.DOUBLE.toString(), Order.TRIPLE.toString(), Order.QUADRUPLE.toString() }; + orderField = new JComboBox(orderString); + addField("Order", orderField); + } + + public void setChemObject(IChemObject object) { + if (object instanceof org.openscience.cdk.interfaces.IBond) { + source = object; + // update table contents + IBond bond = (IBond)source; + orderField.setSelectedItem(bond.getOrder().toString()); + } else { + throw new IllegalArgumentException("Argument must be an Bond"); + } + } + + public void applyChanges() { + IBond bond = (IBond)source; + int newOrder = orderField.getSelectedIndex(); + if(newOrder==0) + bond.setOrder(Order.SINGLE); + else if(newOrder==1) + bond.setOrder(Order.DOUBLE); + else if(newOrder==2) + bond.setOrder(Order.TRIPLE); + else if(newOrder==3) + bond.setOrder(Order.QUADRUPLE); + } +} + + Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ChemObjectEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ChemObjectEditor.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ChemObjectEditor.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,53 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog.editor; + +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.applications.swing.FieldTablePanel; + +/** + */ +public abstract class ChemObjectEditor extends FieldTablePanel { + + protected IChemObject source; + protected boolean mayclose=true; + + public void setChemObject(IChemObject object) { + source = object; + } + + public boolean getMayclose(){ + return mayclose; + } + + public void applyChanges() {} + +} + + Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ChemObjectPropertyDialog.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ChemObjectPropertyDialog.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ChemObjectPropertyDialog.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,109 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog.editor; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JPanel; + +import org.openscience.cdk.controller.ControllerHub; + +/** + * Simple Dialog that shows the loaded dictionaries. + * + */ +public class ChemObjectPropertyDialog extends JFrame { + + private static final long serialVersionUID = 1850053536210317644L; + + private ChemObjectEditor editor; + private ControllerHub hub; + + /** + * Displays the Info Dialog for JChemPaint. + */ + public ChemObjectPropertyDialog(ControllerHub hub, ChemObjectEditor editor) { + super("IChemObject Props Dialog"); + this.editor = editor; + this.hub=hub; + createDialog(); + pack(); + setVisible(true); + } + + private void createDialog(){ + getContentPane().setLayout(new BorderLayout()); + setBackground(Color.lightGray); + setTitle("Properties"); + getContentPane().add("Center",editor); + + JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout ( new FlowLayout(FlowLayout.RIGHT) ); + JButton ok = new JButton("OK"); + ok.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + OKPressed(); + }} + ); + buttonPanel.add( ok ); + JButton cancel = new JButton("Cancel"); + cancel.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + closeFrame(); + }} + ); + buttonPanel.add( cancel ); + getRootPane().setDefaultButton(ok); + getContentPane().add("South",buttonPanel); + + validate(); + } + + private void OKPressed() { + if(editor.getMayclose()){ + // apply new settings + editor.applyChanges(); + hub.updateView(); + closeFrame(); + }else{ + JOptionPane.showInternalMessageDialog(this,"You did not provide necessary information", "Incomplete Information", JOptionPane.WARNING_MESSAGE, null); + } + } + + public void closeFrame() { + dispose(); + } +} Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ChemObjectPropertyDialog.java ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/PseudoAtomEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/PseudoAtomEditor.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/PseudoAtomEditor.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,70 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog.editor; + +import javax.swing.JTextField; + +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.interfaces.IPseudoAtom; + +/** + */ +public class PseudoAtomEditor extends ChemObjectEditor { + + private static final long serialVersionUID = 7785262423262705152L; + + JTextField labelField; + + public PseudoAtomEditor() { + super(); + constructPanel(); + } + + private void constructPanel() { + labelField = new JTextField(20); + addField("Label", labelField); + } + + public void setChemObject(IChemObject object) { + if (object instanceof IPseudoAtom) { + source = object; + // update table contents + labelField.setText(((IPseudoAtom)object).getLabel()); + } else { + throw new IllegalArgumentException("Argument must be an PseudoAtom"); + } + } + + public void applyChanges() { + IPseudoAtom atom = (IPseudoAtom)source; + atom.setLabel(labelField.getText()); + } +} + + Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ReactionEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ReactionEditor.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/ReactionEditor.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -0,0 +1,96 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog.editor; + +import javax.swing.JComboBox; +import javax.swing.JTextField; + +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.interfaces.IReaction; + +/** + */ +public class ReactionEditor extends ChemObjectEditor { + + private static final long serialVersionUID = 2386363253522364974L; + + private final static String SOLVENT = "org.openscience.cdk.Reaction.Solvent"; + private final static String TEMPERATURE = "org.openscience.cdk.Reaction.Temperature"; + + private JTextField idField; + private JComboBox directionField; + private JTextField solventField; + private JTextField tempField; + + public ReactionEditor() { + super(); + constructPanel(); + } + + private void constructPanel() { + idField = new JTextField(40); + addField("Reaction ID", idField); + // the options given next should match the order in the Reaction class! + String[] options = { + "", "Forward", "Backward", "Bidirectional" + }; + directionField = new JComboBox(options); + addField("Direction", directionField); + solventField = new JTextField(40); + addField("Solvent", solventField); + tempField = new JTextField(10); + addField("Temperature", tempField); + } + + public void setChemObject(IChemObject object) { + if (object instanceof IReaction) { + source = object; + // update table contents + IReaction reaction = (IReaction)source; + idField.setText(reaction.getID()); + //TODO + //directionField.setSelectedIndex(reaction.getDirection()); + solventField.setText((String)reaction.getProperty(SOLVENT)); + tempField.setText((String)reaction.getProperty(TEMPERATURE)); + } else { + throw new IllegalArgumentException("Argument must be an Reaction"); + } + } + + public void applyChanges() { + IReaction reaction = (IReaction)source; + reaction.setID(idField.getText()); + //TODO + //reaction.setDirection(directionField.getSelectedIndex()); + reaction.setProperty(SOLVENT, solventField.getText()); + reaction.setProperty(TEMPERATURE, tempField.getText()); + } +} + + Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/RendererModelEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/RendererModelEditor.java 2008-12-11 17:21:10 UTC (rev 13542) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/RendererModelEditor.java 2008-12-11 17:46:45 UTC (rev 13543) @@ -4,7 +4,7 @@ * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ * $Revision: 7634 $ * - * Copyright (C) 1997-2008 Egon Willighagen, Stefan Kuhn + * Copyright (C) 1997-2008 Stefan Kuhn * * Contact: cdk...@li... * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-11 17:21:10 UTC (rev 13542) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-11 17:46:45 UTC (rev 13543) @@ -144,17 +144,17 @@ pseudoStarAction=org.openscience.jchempaint.action.ConvertToPseudoAtomAction@* pseudoRAction=org.openscience.jchempaint.action.ConvertToPseudoAtomAction@R -convertToRadicalAction=org.openscience.cdk.applications.jchempaint.action.ConvertToRadicalAction +convertToRadicalAction=org.openscience.jchempaint.action.ConvertToRadicalAction makeNormalAction=org.openscience.jchempaint.action.ConvertToPseudoAtomAction@normal # Isotope change actions -majorAction=org.openscience.cdk.applications.jchempaint.action.ChangeIsotopeAction@major -majorPlusThreeAction=org.openscience.cdk.applications.jchempaint.action.ChangeIsotopeAction@majorPlusThree -majorPlusTwoAction=org.openscience.cdk.applications.jchempaint.action.ChangeIsotopeAction@majorPlusTwo -majorPlusOneAction=org.openscience.cdk.applications.jchempaint.action.ChangeIsotopeAction@majorPlusOne -majorMinusThreeAction=org.openscience.cdk.applications.jchempaint.action.ChangeIsotopeAction@majorMinusThree -majorMinusTwoAction=org.openscience.cdk.applications.jchempaint.action.ChangeIsotopeAction@majorMinusTwo -majorMinusOneAction=org.openscience.cdk.applications.jchempaint.action.ChangeIsotopeAction@majorMinusOne +majorAction=org.openscience.jchempaint.action.ChangeIsotopeAction@major +majorPlusThreeAction=org.openscience.jchempaint.action.ChangeIsotopeAction@majorPlusThree +majorPlusTwoAction=org.openscience.jchempaint.action.ChangeIsotopeAction@majorPlusTwo +majorPlusOneAction=org.openscience.jchempaint.action.ChangeIsotopeAction@majorPlusOne +majorMinusThreeAction=org.openscience.jchempaint.action.ChangeIsotopeAction@majorMinusThree +majorMinusTwoAction=org.openscience.jchempaint.action.ChangeIsotopeAction@majorMinusTwo +majorMinusOneAction=org.openscience.jchempaint.action.ChangeIsotopeAction@majorMinusOne # View menu @@ -209,8 +209,8 @@ addProductToNewReactionAction=org.openscience.cdk.applications.jchempaint.action.CreateReactionAction@addProductToNew addReactantToExistingReactionAction=org.openscience.cdk.applications.jchempaint.action.CreateReactionAction@addReactantToExisting addProductToExistingReactionAction=org.openscience.cdk.applications.jchempaint.action.CreateReactionAction@addProductToExisting -showChemObjectPropertiesAction=org.openscience.cdk.applications.jchempaint.action.EditChemObjectPropsAction -# showACPropertiesAction=org.openscience.cdk.applications.jchempaint.action.EditAtomContainerPropsAction +showChemObjectPropertiesAction=org.openscience.jchempaint.action.EditChemObjectPropsAction +showACPropertiesAction=org.openscience.jchempaint.action.EditAtomContainerPropsAction atomToPseudoAtomAction=org.openscience.cdk.applications.jchempaint.action.ConvertToAction@atomToPseudoAtom atomToResidueLocatorAction=org.openscience.cdk.applications.jchempaint.action.ConvertToAction@atomToEnzymeResidueLocator This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2008-12-12 10:31:56
|
Revision: 13544 http://cdk.svn.sourceforge.net/cdk/?rev=13544&view=rev Author: shk3 Date: 2008-12-12 10:31:51 +0000 (Fri, 12 Dec 2008) Log Message: ----------- more actions Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/AdjustBondOrdersAction.java Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/AdjustBondOrdersAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/AdjustBondOrdersAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/AdjustBondOrdersAction.java 2008-12-12 10:31:51 UTC (rev 13544) @@ -0,0 +1,103 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Christoph Steinbeck, Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; +import java.util.Iterator; +import java.util.List; + +import javax.swing.JOptionPane; + +import org.openscience.cdk.ChemModel; +import org.openscience.cdk.interfaces.IAtomContainer; +import org.openscience.cdk.interfaces.IBond; +import org.openscience.cdk.interfaces.IBond.Order; +import org.openscience.cdk.tools.SaturationChecker; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; + + +/** + * Triggers the adjustment of BondOrders + * + */ +public class AdjustBondOrdersAction extends JCPAction +{ + + private static final long serialVersionUID = -2930750443449102916L; + + public void actionPerformed(ActionEvent e) + { + ChemModel model = (ChemModel) jcpPanel.getChemModel(); + logger.debug("Adjusting bondorders: ", type); + if (type.equals("clear")) + { + try + { + SaturationChecker satChecker = new SaturationChecker(); + List containersList = ChemModelManipulator.getAllAtomContainers(model); + Iterator iterator = containersList.iterator(); + while(iterator.hasNext()) + { + IAtomContainer ac = (IAtomContainer)iterator.next(); + for(IBond bond : ac.bonds()) { + bond.setOrder(Order.SINGLE); + } + } + jcpPanel.get2DHub().updateView(); + } catch (Exception exc) + { + String error = "Could not adjust bondorders."; + logger.error(error); + logger.debug(exc); + JOptionPane.showMessageDialog(jcpPanel, error); + } + } else + { + try + { + SaturationChecker satChecker = new SaturationChecker(); + List containersList = ChemModelManipulator.getAllAtomContainers(model); + Iterator iterator = containersList.iterator(); + while(iterator.hasNext()) + { + IAtomContainer ac = (IAtomContainer)iterator.next(); + satChecker.saturate(ac); + } + jcpPanel.get2DHub().updateView(); + } catch (Exception exc) + { + String error = "Could not adjust bondorders."; + logger.error(error); + logger.debug(exc); + JOptionPane.showMessageDialog(jcpPanel, error); + } + } + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/AdjustBondOrdersAction.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-11 17:46:45 UTC (rev 13543) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-12 10:31:51 UTC (rev 13544) @@ -98,8 +98,8 @@ addImplHydrogenAction=org.openscience.cdk.applications.jchempaint.action.AddHydrogenAction@implicit makeHydrogenExplicitAction=org.openscience.cdk.applications.jchempaint.action.AddHydrogenAction@explicit makeHydrogenImplicitAction=org.openscience.cdk.applications.jchempaint.action.AddHydrogenAction@allimplicit -adjustBondOrdersAction=org.openscience.cdk.applications.jchempaint.action.AdjustBondOrdersAction -resetBondOrdersAction=org.openscience.cdk.applications.jchempaint.action.AdjustBondOrdersAction@clear +adjustBondOrdersAction=org.openscience.jchempaint.action.AdjustBondOrdersAction +resetBondOrdersAction=org.openscience.jchempaint.action.AdjustBondOrdersAction@clear cleanupAction=org.openscience.jchempaint.action.CleanupAction modelPropsAction=org.openscience.cdk.applications.jchempaint.action.ModelPropsAction editDictRefAction=org.openscience.cdk.applications.jchempaint.action.EditDictRefsAction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2008-12-12 12:10:22
|
Revision: 13546 http://cdk.svn.sourceforge.net/cdk/?rev=13546&view=rev Author: shk3 Date: 2008-12-12 12:10:18 +0000 (Fri, 12 Dec 2008) Log Message: ----------- the status bar works Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToRadicalAction.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2008-12-12 10:32:22 UTC (rev 13545) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2008-12-12 12:10:18 UTC (rev 13546) @@ -485,16 +485,16 @@ */ public void stateChanged(IChemObjectChangeEvent event) { setModified(true); - /* TODO gives concurrent access problems if (this.getChemModel() != null) { + if (this.getChemModel() != null) { for (int i = 0; i < 3; i++) { - String status = p.getStatus(i); + String status = renderPanel.getStatus(i); statusBar.setStatus(i + 1, status); } } else { if (statusBar != null) { statusBar.setStatus(1, "no model"); } - }*/ + } } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2008-12-12 10:32:22 UTC (rev 13545) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2008-12-12 12:10:18 UTC (rev 13546) @@ -47,6 +47,8 @@ import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.interfaces.IChemModel; +import org.openscience.cdk.interfaces.IMolecularFormula; +import org.openscience.cdk.nonotify.NoNotificationChemObjectBuilder; import org.openscience.cdk.renderer.ISelection; import org.openscience.cdk.renderer.IntermediateRenderer; import org.openscience.cdk.tools.manipulator.ChemModelManipulator; @@ -224,24 +226,27 @@ else if (position == 1) { // depict bruto formula IChemModel chemModel = hub.getIChemModel(); - IAtomContainer wholeModel = chemModel.getBuilder().newAtomContainer(); + //TODO should be for all atomcontainers + /*IMolecularFormula wholeModel = NoNotificationChemObjectBuilder.getInstance().newMolecularFormula(); Iterator<IAtomContainer> containers = ChemModelManipulator.getAllAtomContainers(chemModel).iterator(); while (containers.hasNext()) { - wholeModel.add(containers.next()); - } + for(IAtom atom : containers.next().atoms()){ + wholeModel.addIsotope(atom); + } + }*/ String formula = MolecularFormulaManipulator.getHTML( - MolecularFormulaManipulator.getMolecularFormula(wholeModel), + MolecularFormulaManipulator.getMolecularFormula(chemModel.getMoleculeSet().getAtomContainer(0)), true, false); int implicitHs = 0; - for (int i = 0; i < wholeModel.getAtomCount(); i++) { + /*for (int i = 0; i < wholeModel.getAtomCount(); i++) { IAtom a = wholeModel.getAtom(i); if (a.getHydrogenCount() != null) { implicitHs += a.getHydrogenCount(); } - } + }*/ status = "<html>" + formula + (implicitHs == 0 ? "" : " (of these " @@ -252,11 +257,13 @@ ISelection selection = renderer.getRenderer2DModel().getSelection(); if (selection != null) { IAtomContainer ac = selection.getConnectedAtomContainer(); - String formula = MolecularFormulaManipulator.getHTML( - MolecularFormulaManipulator.getMolecularFormula(ac), - true, - true); - status = "<html>" + formula + "</html>"; + if(ac!=null){ + String formula = MolecularFormulaManipulator.getHTML( + MolecularFormulaManipulator.getMolecularFormula(ac), + true, + false); + status = "<html>" + formula + "</html>"; + } } } return status; Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToRadicalAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToRadicalAction.java 2008-12-12 10:32:22 UTC (rev 13545) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ConvertToRadicalAction.java 2008-12-12 12:10:18 UTC (rev 13546) @@ -38,6 +38,7 @@ import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.interfaces.IChemObject; import org.openscience.cdk.tools.LonePairElectronChecker; +import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; import org.openscience.cdk.tools.manipulator.ChemModelManipulator; /** @@ -55,10 +56,17 @@ Atom atom = (Atom)object; IAtomContainer relevantContainer = ChemModelManipulator.getRelevantAtomContainer(model, atom); + try { + AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(relevantContainer); + } catch (CDKException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } double number=0; try { number = new LonePairElectronChecker().getFreeLonePairs(atom, relevantContainer); } catch (CDKException e) { + e.printStackTrace(); e.getMessage(); logger.error(e.getMessage()); logger.debug(e); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gil...@us...> - 2008-12-15 18:00:20
|
Revision: 13583 http://cdk.svn.sourceforge.net/cdk/?rev=13583&view=rev Author: gilleain Date: 2008-12-15 18:00:16 +0000 (Mon, 15 Dec 2008) Log Message: ----------- - Two utility methods for the JChemPaint panel - Removed use of an integer instead of a static constant. Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/CloseAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/SaveAsAction.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2008-12-15 16:05:35 UTC (rev 13582) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2008-12-15 18:00:16 UTC (rev 13583) @@ -115,6 +115,17 @@ chemModel.addListener(this); } + public Container getTopLevelContainer() { + return this.getParent().getParent().getParent().getParent(); + } + + public void setTitle(String title) { + Container topLevelContainer = this.getTopLevelContainer(); + if (topLevelContainer instanceof JFrame) { + ((JFrame) topLevelContainer).setTitle(title); + } + } + public void setupPopupMenus(SwingPopupModule inputAdapter) { if (inputAdapter.getPopupMenu(PseudoAtom.class) == null) @@ -165,7 +176,7 @@ */ public void setModified(boolean isModified) { this.isModified = isModified; - Container c = this.getParent().getParent().getParent().getParent(); + Container c = this.getTopLevelContainer(); if (c instanceof JFrame){ String id = renderPanel.getChemModel().getID(); if (isModified) @@ -466,7 +477,7 @@ int clear = ((JChemPaintPanel) ((JFrame) e.getSource()).getContentPane().getComponents()[0]).showWarning(); if (JOptionPane.CANCEL_OPTION != clear) { for (int i = 0; i < instances.size(); i++) { - if (instances.get(i).getParent().getParent().getParent().getParent() == (JFrame)e.getSource()) { + if (instances.get(i).getTopLevelContainer() == (JFrame)e.getSource()) { instances.remove(i); break; } @@ -502,11 +513,10 @@ * Closes all currently opened JCP instances. */ public static void closeAllInstances() { - Iterator<JChemPaintPanel> it =((List<JChemPaintPanel>)((ArrayList<JChemPaintPanel>)instances).clone()).iterator(); - while (it.hasNext()) { - JFrame frame = (JFrame) it.next().getParent().getParent().getParent().getParent(); + for (JChemPaintPanel panel : instances) { + JFrame frame = (JFrame) panel.getTopLevelContainer(); WindowListener[] wls = (WindowListener[]) (frame.getListeners(WindowListener.class)); - wls[0].windowClosing(new WindowEvent(frame, 12)); + wls[0].windowClosing(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING)); frame.setVisible(false); frame.dispose(); } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2008-12-15 16:05:35 UTC (rev 13582) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2008-12-15 18:00:16 UTC (rev 13583) @@ -216,19 +216,19 @@ * @return the current status */ public String getStatus(int position) { - // return this.status[position]; String status = ""; - // logger.debug("Getting status"); if (position == 0) { // depict editing mode status = hub.getActiveDrawModule().getDrawModeString(); - } - else if (position == 1) { + } else if (position == 1) { // depict bruto formula IChemModel chemModel = hub.getIChemModel(); - if(chemModel.getMoleculeSet()!=null && chemModel.getMoleculeSet().getAtomContainerCount()>0){ - //TODO should be for all atomcontainers - /*IMolecularFormula wholeModel = NoNotificationChemObjectBuilder.getInstance().newMolecularFormula(); + + if (chemModel.getMoleculeSet() != null + && chemModel.getMoleculeSet().getAtomContainerCount() > 0) { + //TODO should be for all atomcontainers + + /*IMolecularFormula wholeModel = NoNotificationChemObjectBuilder.getInstance().newMolecularFormula(); Iterator<IAtomContainer> containers = ChemModelManipulator.getAllAtomContainers(chemModel).iterator(); while (containers.hasNext()) { @@ -236,41 +236,39 @@ wholeModel.addIsotope(atom); } }*/ - String formula - = MolecularFormulaManipulator.getHTML( - MolecularFormulaManipulator.getMolecularFormula(chemModel.getMoleculeSet().getAtomContainer(0)), - true, - false); - int implicitHs = 0; - /*for (int i = 0; i < wholeModel.getAtomCount(); i++) { + String formula + = MolecularFormulaManipulator.getHTML( + MolecularFormulaManipulator.getMolecularFormula( + chemModel.getMoleculeSet().getAtomContainer(0)), + true, + false); + int implicitHs = 0; + /*for (int i = 0; i < wholeModel.getAtomCount(); i++) { IAtom a = wholeModel.getAtom(i); if (a.getHydrogenCount() != null) { implicitHs += a.getHydrogenCount(); } }*/ - status = "<html>" - + formula - + (implicitHs == 0 ? "" : " (of these " - + implicitHs + " Hs implicit)") + "</html>"; + status = "<html>" + + formula + + (implicitHs == 0 ? "" : " (of these " + + implicitHs + " Hs implicit)") + "</html>"; + } else if (position == 2) { + // depict brutto formula of the selected molecule or part of molecule + ISelection selection = renderer.getRenderer2DModel().getSelection(); + if (selection != null) { + IAtomContainer ac = selection.getConnectedAtomContainer(); + if (ac != null) { + String formula = MolecularFormulaManipulator + .getHTML(MolecularFormulaManipulator + .getMolecularFormula(ac), true, false); + status = "<html>" + formula + "</html>"; + } + } } } - else if (position == 2) { - // depict brutto formula of the selected molecule or part of molecule - ISelection selection = renderer.getRenderer2DModel().getSelection(); - if (selection != null) { - IAtomContainer ac = selection.getConnectedAtomContainer(); - if(ac!=null){ - String formula = MolecularFormulaManipulator.getHTML( - MolecularFormulaManipulator.getMolecularFormula(ac), - true, - false); - status = "<html>" + formula + "</html>"; - } - } - } return status; } - public IntermediateRenderer getRenderer() { return renderer; Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/CloseAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CloseAction.java 2008-12-15 16:05:35 UTC (rev 13582) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/CloseAction.java 2008-12-15 18:00:16 UTC (rev 13583) @@ -34,25 +34,20 @@ import javax.swing.JFrame; - /** * Triggers an exit of the current frame * */ -public class CloseAction extends JCPAction -{ +public class CloseAction extends JCPAction { private static final long serialVersionUID = 5877928616913182728L; /** * Closes the current frame - * - *@param e Description of the Parameter */ - public void actionPerformed(ActionEvent e) - { - JFrame jframe=(JFrame)jcpPanel.getParent().getParent().getParent().getParent(); - WindowListener[] wls = (WindowListener[])(jframe.getListeners(WindowListener.class)); - wls[0].windowClosing(new WindowEvent(jframe,12)); + public void actionPerformed(ActionEvent e) { + JFrame jFrame = (JFrame) jcpPanel.getTopLevelContainer(); + WindowListener[] wls = jFrame.getWindowListeners(); + wls[0].windowClosing(new WindowEvent(jFrame, WindowEvent.WINDOW_CLOSING)); } } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/SaveAsAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/SaveAsAction.java 2008-12-15 16:05:35 UTC (rev 13582) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/SaveAsAction.java 2008-12-15 18:00:16 UTC (rev 13583) @@ -208,7 +208,7 @@ jcpPanel.setCurrentSaveFileFilter(chooser.getFileFilter()); jcpPanel.setIsAlreadyAFile(outFile); jcpPanel.getChemModel().setID(outFile.getName()); - ((JFrame)jcpPanel.getParent().getParent().getParent().getParent()).setTitle(outFile.getName()); + jcpPanel.setTitle(outFile.getName()); } } } @@ -236,7 +236,7 @@ org.openscience.cdk.interfaces.IMoleculeSet som = model.getMoleculeSet(); cow.write(som); cow.close(); - ((JFrame)jcpPanel.getParent().getParent().getParent().getParent()).setTitle(jcpPanel.getChemModel().getID()); + jcpPanel.setTitle(jcpPanel.getChemModel().getID()); return outFile; } @@ -270,7 +270,7 @@ cow.write(object); cow.close(); sw.close(); - ((JFrame)jcpPanel.getParent().getParent().getParent().getParent()).setTitle(jcpPanel.getChemModel().getID()); + jcpPanel.setTitle(jcpPanel.getChemModel().getID()); return outFile; } @@ -290,7 +290,7 @@ org.openscience.cdk.interfaces.IMoleculeSet som = model.getMoleculeSet(); cow.write(som); cow.close(); - ((JFrame)jcpPanel.getParent().getParent().getParent().getParent()).setTitle(jcpPanel.getChemModel().getID()); + jcpPanel.setTitle(jcpPanel.getChemModel().getID()); return outFile; } @@ -317,7 +317,7 @@ } } cow.close(); - ((JFrame)jcpPanel.getParent().getParent().getParent().getParent()).setTitle(jcpPanel.getChemModel().getID()); + jcpPanel.setTitle(jcpPanel.getChemModel().getID()); return outFile; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2008-12-19 13:51:34
|
Revision: 13666 http://cdk.svn.sourceforge.net/cdk/?rev=13666&view=rev Author: shk3 Date: 2008-12-19 13:51:28 +0000 (Fri, 19 Dec 2008) Log Message: ----------- activated preferences Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ModifyGeneralSettingsAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/PreferencesAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/GeneralSettingsEditor.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/ModifyGeneralSettingsDialog.java Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ModifyGeneralSettingsAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ModifyGeneralSettingsAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ModifyGeneralSettingsAction.java 2008-12-19 13:51:28 UTC (rev 13666) @@ -0,0 +1,50 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Egon Willighagen, Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.jchempaint.dialog.ModifyGeneralSettingsDialog; + +/** + * Action to pop-up an JFrame to edit general application settings. + * + * @cdk.created 2005-04-27 + */ +public class ModifyGeneralSettingsAction extends JCPAction { + + private static final long serialVersionUID = 4720847467453109793L; + + public void actionPerformed(ActionEvent e) { + logger.debug("Modify general JCP settings"); + ModifyGeneralSettingsDialog frame = + new ModifyGeneralSettingsDialog(); + } + +} Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/PreferencesAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/PreferencesAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/PreferencesAction.java 2008-12-19 13:51:28 UTC (rev 13666) @@ -0,0 +1,59 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Christoph Steinbeck, Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.jchempaint.JCPPropertyHandler; + + +/** + * Shows the preferences dialog + * + */ +public class PreferencesAction extends JCPAction +{ + + private static final long serialVersionUID = 9107133740176493345L; + + public void actionPerformed(ActionEvent event) + { + if (type.equals("save")) + { + JCPPropertyHandler.getInstance().saveProperties(); + } else if (type.equals("reload")) + { + JCPPropertyHandler.getInstance().reloadProperties(); + } else + { + logger.error("Unkown command: " + type); + } + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/PreferencesAction.java ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/GeneralSettingsEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/GeneralSettingsEditor.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/GeneralSettingsEditor.java 2008-12-19 13:51:28 UTC (rev 13666) @@ -0,0 +1,93 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Properties; + +import javax.swing.JCheckBox; +import javax.swing.JFrame; + +import org.openscience.cdk.applications.swing.FieldTablePanel; +import org.openscience.jchempaint.JCPPropertyHandler; + +/** + * JFrame that allows setting of a number of general application options. + * + */ +public class GeneralSettingsEditor extends FieldTablePanel implements ActionListener { + + private static final long serialVersionUID = -6796422949531937872L; + + private JCheckBox askForIOSettings; + + private JFrame frame; + + public GeneralSettingsEditor(JFrame frame) { + super(); + this.frame = frame; + constructPanel(); + } + + private void constructPanel() { + askForIOSettings = new JCheckBox(); + addField("Ask for IO settings", askForIOSettings); + } + + public void setSettings() { + Properties props = JCPPropertyHandler.getInstance().getJCPProperties(); + askForIOSettings.setSelected(props.getProperty("askForIOSettings", "true").equals("true")); + validate(); + } + + public void applyChanges() { + Properties props = JCPPropertyHandler.getInstance().getJCPProperties(); + props.setProperty("askForIOSettings", + askForIOSettings.isSelected() ? "true" : "false" + ); + } + + /** + * Required by the ActionListener interface. + */ + public void actionPerformed(ActionEvent e) { + // nothing to do whatsoever + } + + public JFrame getFrame() { + return frame; + } + + public void setFrame(JFrame frame) { + this.frame = frame; + } +} + + Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/ModifyGeneralSettingsDialog.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/ModifyGeneralSettingsDialog.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/ModifyGeneralSettingsDialog.java 2008-12-19 13:51:28 UTC (rev 13666) @@ -0,0 +1,109 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; + +/** + */ +public class ModifyGeneralSettingsDialog extends JFrame { + + private static final long serialVersionUID = 6301409462492656565L; + + private GeneralSettingsEditor editor; + + /** + * Displays the Info Dialog for JChemPaint. + */ + public ModifyGeneralSettingsDialog() { + super("Modify General Settings Dialog"); + editor = new GeneralSettingsEditor(this); + createDialog(); + pack(); + setVisible(true); + } + + private void createDialog(){ + getContentPane().setLayout(new BorderLayout()); + setBackground(Color.lightGray); + setTitle("General Setting"); + editor.setSettings(); + getContentPane().add("Center",editor); + + JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout ( new FlowLayout(FlowLayout.RIGHT) ); + JButton ok = new JButton("OK"); + ok.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + OKPressed(); + }} + ); + buttonPanel.add( ok ); + getRootPane().setDefaultButton(ok); + JButton apply = new JButton("Apply"); + apply.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + ApplyPressed(); + }} + ); + buttonPanel.add( apply ); + JButton cancel = new JButton("Cancel"); + cancel.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + closeFrame(); + }} + ); + buttonPanel.add( cancel ); + getRootPane().setDefaultButton(ok); + getContentPane().add("South",buttonPanel); + + validate(); + } + + private void ApplyPressed() { + // apply new settings + editor.applyChanges(); + } + private void OKPressed() { + ApplyPressed(); + closeFrame(); + } + + public void closeFrame() { + dispose(); + } +} Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/ModifyGeneralSettingsDialog.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties 2008-12-19 13:35:37 UTC (rev 13665) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties 2008-12-19 13:51:28 UTC (rev 13666) @@ -65,7 +65,7 @@ help=info help tutorial - about license hydrogen=addImplHydrogen++ makeHydrogenExplicit makeHydrogenImplicit -preferences=editPreferences reloadPreferences savePreferences +preferences=editPreferences validate=runValidate clearValidate atomType=atValency atMm2 atMmff94 flip=flipHorizontal flipVertical Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-19 13:35:37 UTC (rev 13665) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-19 13:51:28 UTC (rev 13666) @@ -102,9 +102,9 @@ resetBondOrdersAction=org.openscience.jchempaint.action.AdjustBondOrdersAction@clear cleanupAction=org.openscience.jchempaint.action.CleanupAction editDictRefAction=org.openscience.cdk.applications.jchempaint.action.EditDictRefsAction -editPreferencesAction=org.openscience.cdk.applications.jchempaint.action.ModifyGeneralSettingsAction -savePreferencesAction=org.openscience.cdk.applications.jchempaint.action.PreferencesAction@save -reloadPreferencesAction=org.openscience.cdk.applications.jchempaint.action.PreferencesAction@reload +editPreferencesAction=org.openscience.jchempaint.action.ModifyGeneralSettingsAction +savePreferencesAction=org.openscience.jchempaint.action.PreferencesAction@save +reloadPreferencesAction=org.openscience.jchempaint.action.PreferencesAction@reload flipHorizontalAction=org.openscience.cdk.applications.jchempaint.action.FlipAction@horizontal flipVerticalAction=org.openscience.cdk.applications.jchempaint.action.FlipAction@vertical This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2008-12-19 14:08:34
|
Revision: 13667 http://cdk.svn.sourceforge.net/cdk/?rev=13667&view=rev Author: shk3 Date: 2008-12-19 14:08:28 +0000 (Fri, 19 Dec 2008) Log Message: ----------- added the atom types Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/PerceiveAtomTypesAction.java Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/PerceiveAtomTypesAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/PerceiveAtomTypesAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/PerceiveAtomTypesAction.java 2008-12-19 14:08:28 UTC (rev 13667) @@ -0,0 +1,84 @@ +/* $Revision: 7032 $ $Author: kaihartmann $ $Date: 2006-09-22 17:26:48 +0200 (Fri, 22 Sep 2006) $ + * + * Copyright (C) 2006-2007 Egon Willighagen <ewi...@un...> + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; +import java.util.Iterator; + +import org.openscience.cdk.atomtype.IAtomTypeMatcher; +import org.openscience.cdk.atomtype.MM2AtomTypeMatcher; +import org.openscience.cdk.atomtype.MMFF94AtomTypeMatcher; +import org.openscience.cdk.exception.CDKException; +import org.openscience.cdk.interfaces.IAtom; +import org.openscience.cdk.interfaces.IAtomContainer; +import org.openscience.cdk.interfaces.IChemModel; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; +import org.openscience.jchempaint.dialog.ValidateFrame; + +/** + * An action that triggers atom type perception by the CDK. + * + * @cdk.module jchempaint + * @author E.L. Willighagen <ewi...@un...> + */ +public class PerceiveAtomTypesAction extends JCPAction +{ + + private static final long serialVersionUID = -3776589605934024224L; + + ValidateFrame frame = null; + + public void actionPerformed(ActionEvent event) { + logger.debug("detected force field type list: ", type); + IAtomTypeMatcher matcher = null; + if ("mm2".equals(type)) { + matcher = new MM2AtomTypeMatcher(); + } else if ("mmff94".equals(type)) { + matcher = new MMFF94AtomTypeMatcher(); + } + //TODO what about cdk valency + if (matcher == null) { + logger.warn("Not a known atom type list: " + type); + return; + } + + IChemModel model = jcpPanel.getChemModel(); + + Iterator<IAtomContainer> containers = ChemModelManipulator.getAllAtomContainers(model).iterator(); + while (containers.hasNext()) { + IAtomContainer container = containers.next(); + for(IAtom atom : container.atoms()){ + try { + atom.setAtomTypeName(matcher.findMatchingAtomType(container, atom).getAtomTypeName()); + } catch (CDKException e) { + logger.error("Could not find atom type name for atom!", e); + logger.debug(e); + } + } + } + } + +} + Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-19 13:51:28 UTC (rev 13666) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2008-12-19 14:08:28 UTC (rev 13667) @@ -185,9 +185,9 @@ createIChIAction=org.openscience.cdk.applications.jchempaint.action.CreateIChIAction createIUPACAction=org.openscience.cdk.applications.jchempaint.action.CreateIUPACNameAction -atValencyAction=org.openscience.cdk.applications.jchempaint.action.PerceiveAtomTypesAction@valency -atMm2Action=org.openscience.cdk.applications.jchempaint.action.PerceiveAtomTypesAction@mm2 -atMmff94Action=org.openscience.cdk.applications.jchempaint.action.PerceiveAtomTypesAction@mmff94 +atValencyAction=org.openscience.jchempaint.action.PerceiveAtomTypesAction@valency +atMm2Action=org.openscience.jchempaint.action.PerceiveAtomTypesAction@mm2 +atMmff94Action=org.openscience.jchempaint.action.PerceiveAtomTypesAction@mmff94 # Help menu infoAction=org.openscience.cdk.applications.jchempaint.action.InfoAction@general This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-01-12 17:18:47
|
Revision: 13863 http://cdk.svn.sourceforge.net/cdk/?rev=13863&view=rev Author: shk3 Date: 2009-01-12 17:18:40 +0000 (Mon, 12 Jan 2009) Log Message: ----------- added the help system. The texts have not yet been adopted. Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/HelpAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/HelpDialog.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/aboutJCP.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/beyondJCP.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/bibliography.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/bugs.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/button.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/drawingButtons.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/extendingJCP.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/fitting.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menu.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuEdit.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuFile.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuHelp.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuInsert.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuPlugins.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuReport.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuView.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/molecules.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/moveButtons.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/otherButtons.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/participate.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/reactions.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/referenceGuide.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/requirements.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/tutorial.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/whatIs.html jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/jcp.html Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/HelpAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/HelpAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/HelpAction.java 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,55 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn, Christoph Steinbeck + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.jchempaint.dialog.HelpDialog; + +/** + * Pops up the help. + * + */ +public class HelpAction extends JCPAction +{ + + private static final long serialVersionUID = -9213900779679488824L; + + public void actionPerformed(ActionEvent e) + { + if (type.equals("tutorial")) + { + new HelpDialog(null, "org/openscience/jchempaint/resources/userhelp_jcp/contain/tutorial.html").setVisible(true); + } else + { + new HelpDialog(null, "org/openscience/jchempaint/resources/userhelp_jcp/jcp.html").setVisible(true); + } + } +} + Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/HelpDialog.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/HelpDialog.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/HelpDialog.java 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,249 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn, Christoph Steinbeck + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; + +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JEditorPane; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.SwingUtilities; +import javax.swing.event.HyperlinkEvent; +import javax.swing.event.HyperlinkListener; +import javax.swing.text.Document; + +/** + * A Dialog showing help information + * + */ +public class HelpDialog extends JDialog implements HyperlinkListener +{ + + private static final long serialVersionUID = 510350451152687814L; + + JEditorPane html; + + + /** + * Constructor for the HelpDialog object + * + *@param fr Description of the Parameter + *@param helpfile Description of the Parameter + */ + public HelpDialog(JFrame fr, String helpfile) + { + super(fr, "JChemPaint Help", false); + + try + { + URL helpURL = this.getClass().getClassLoader().getResource(helpfile); + if (helpURL != null) + { + html = new JEditorPane(helpURL); + } else + { + html = new JEditorPane("text/plain", "Unable to find url \"" + helpfile + "\"."); + } + html.setEditable(false); + html.addHyperlinkListener(this); + } catch (MalformedURLException e) + { + System.out.println("Malformed URL: " + e); + } catch (IOException e) + { + System.out.println("IOException: " + e); + } + JScrollPane scroller = + new JScrollPane() + { + + private static final long serialVersionUID = -9024998081172061175L; + + + public Dimension getPreferredSize() + { + return new Dimension(500, 400); + } + + + public float getAlignmentX() + { + return LEFT_ALIGNMENT; + } + }; + scroller.getViewport().add(html); + + JPanel htmlWrapper = new JPanel(new BorderLayout()); + htmlWrapper.setAlignmentX(LEFT_ALIGNMENT); + htmlWrapper.add(scroller, BorderLayout.CENTER); + + JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT)); + JButton ok = new JButton("OK"); + ok.addActionListener( + new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + OKPressed(); + } + }); + buttonPanel.add(ok); + getRootPane().setDefaultButton(ok); + + JPanel container = new JPanel(); + container.setLayout(new BorderLayout()); + + container.add(htmlWrapper, BorderLayout.CENTER); + container.add(buttonPanel, BorderLayout.SOUTH); + + getContentPane().add(container); + pack(); + centerDialog(); + } + + public void hyperlinkUpdate(HyperlinkEvent e) + { + if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) + { + linkActivated(e.getURL()); + } + } + + + /** + * Follows the reference in an link. The given url is the requested reference. + * By default this calls <a href="#setPage">setPage</a> , and if an exception + * is thrown the original previous document is restored and a beep sounded. If + * an attempt was made to follow a link, but it represented a malformed url, + * this method will be called with a null argument. + * + *@param u the URL to follow + */ + protected void linkActivated(URL u) + { + Cursor c = html.getCursor(); + Cursor waitCursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR); + html.setCursor(waitCursor); + SwingUtilities.invokeLater(new PageLoader(u, c)); + } + + + /** + * temporary class that loads synchronously (although later than the request + * so that a cursor change can be done). + * + *@author steinbeck + */ + class PageLoader implements Runnable + { + + /** + * Constructor for the PageLoader object + * + *@param u Description of the Parameter + *@param c Description of the Parameter + */ + PageLoader(URL u, Cursor c) + { + url = u; + cursor = c; + } + + + /** + * Main processing method for the PageLoader object + */ + public void run() + { + if (url == null) + { + // restore the original cursor + html.setCursor(cursor); + + // remove this hack when automatic validation is + // activated. + Container parent = html.getParent(); + parent.repaint(); + } else + { + Document doc = html.getDocument(); + try + { + html.setPage(url); + } catch (IOException ioe) + { + html.setDocument(doc); + getToolkit().beep(); + } finally + { + // schedule the cursor to revert after the paint + // has happended. + url = null; + SwingUtilities.invokeLater(this); + } + } + } + + + URL url; + Cursor cursor; + } + + protected void centerDialog() + { + Dimension screenSize = this.getToolkit().getScreenSize(); + Dimension size = this.getSize(); + screenSize.height = screenSize.height / 2; + screenSize.width = screenSize.width / 2; + size.height = size.height / 2; + size.width = size.width / 2; + int y = screenSize.height - size.height; + int x = screenSize.width - size.width; + this.setLocation(x, y); + } + + public void OKPressed() + { + this.setVisible(false); + } + +} \ No newline at end of file Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/HelpDialog.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-12 16:20:24 UTC (rev 13862) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-12 17:18:40 UTC (rev 13863) @@ -191,7 +191,7 @@ # Help menu infoAction=org.openscience.cdk.applications.jchempaint.action.InfoAction@general -helpAction=org.openscience.cdk.applications.jchempaint.action.HelpAction +helpAction=org.openscience.jchempaint.action.HelpAction tutorialAction=org.openscience.cdk.applications.jchempaint.action.HelpAction@tutorial aboutAction=org.openscience.cdk.applications.jchempaint.action.AboutAction licenseAction=org.openscience.cdk.applications.jchempaint.action.LicenseAction Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/aboutJCP.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/aboutJCP.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/aboutJCP.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,64 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>JChemPaint Release</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">JChemPaint Release</th> + </tr> + <tr> + <td align="left" width="20%"><a href="../jcp.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="whatIs.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h1>JChemPaint Release</h1> +<p> +This chapter describes what is JChemPaint release.<p> + +How you use the release depends on your interests. For example: +</p> +<table width=70% border=0 cellpadding=5 align="left"> +<tr valign="top"> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td>If you are a user interested in how to draw molecules and reactions using JChemPaint, +you might want to read following chapters: + <ul type="circle"> + <li><a href="tutorial.html">JChempaint Tutorial</a>. + <li><a href="referenceGuide.html">JChemPaint System Reference Guide</a>. + </ul> + </td> +</tr> + +<tr valign="top"> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td>If you are an online help author and interested in improving JChemPaint, +this Chapter is what you are looking for.</td> +</tr> +</table> +<div class="navfooter"><hr> + <table width="100%" border="0"> + <tr> + <td align="left" width="40%"><a href="../jcp.html">Prev</a></td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="whatIS.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="aboutJCP.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/aboutJCP.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/beyondJCP.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/beyondJCP.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/beyondJCP.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,55 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>Beyond JChemPaint</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">Beyond JChemPaint</th> + </tr> + <tr> + <td align="left" width="20%"><a href="referenceGuide.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="extendingJCP.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h2>Beyond JChemPaint </h2> +<p>This chapter describes how JChemPaint can be extended to provide even more functionality, or fit it into your corporate working environment with specialized plugins. Because JChemPaint is only where it starts.</p> +<table width=70% border=0 cellpadding=5 align="left"> + <tr valign="top"> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="extendingJCP.html"><b>Extending JChemPaint</b></a></td> + </tr> + <tr valign="top"> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="bibliography.html"><b>Bibliography</b></a></td> + </tr> +</table> + +<br> +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="referenceGuide.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="extendingJCP.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="../jcp.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> \ No newline at end of file Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/bibliography.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/bibliography.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/bibliography.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,175 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>Bibliography</title> + +<link href="index.html" rel="home" title="JChemPaint Help"> +<link href="index.html" rel="up" title="JChemPaint Help"> +<link href="ch01s09.html" rel="previous" title="Menu description"> + +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + <div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">Bibliography</th> + </tr> + <tr> + <td align="left" width="20%"><a href="extendingJCP.html">Prev</a> </td> + </tr> + </table><hr></div> + + +<h2>Bibliography</h2> +<br> +<div class="biblioentry" id="BLE91"> + <a name="BLE91"></a> + + <span class="abbrev">[BLE91]</span> + <span class="authorgroup"> Bley, K., Brandt, J., Dengler, A., Frank, R., and Ugi, I. “Constitutional Formulae generated from Connectivity Information: + the Program MDRAW”.</span> + <span class="pubdate">1991.</span> + <span class="pagenums">2601-2689.</span> + <span class="biblioset">Journal of Chemical Research (M).</span> + +</div> +<br> +<div class="biblioentry" id="BRE78"> + <a name="BRE78"></a> + + <span class="abbrev">[BRE78]</span> + <span class="authorgroup"> Bremser, W. “HOSE - A Novel Substructure Code”.</span> + <span class="volumenum"></span> + <span class="issuenum"></span> + <span class="pagenums">355-365.</span> + <span class="pubdate">1978.</span> + <span class="biblioset">Analytica Chimica Acta.</span> + <span class="bibliomisc"></span> + +</div> +<br> +<div class="biblioentry" id="BRE85"> + <a name="BRE85"></a> + + <span class="abbrev">[BRE85]</span> + <span class="authorgroup"> Bremser, W. “Exspectation Ranges of 13-C NMR Chemical Shifts”.</span> + <span class="volumenum"></span> + <span class="issuenum"></span> + <span class="pagenums">271-275.</span> + <span class="pubdate">1985.</span> + <span class="biblioset">Magnetic Resonance in Chemistry.</span> + <span class="bibliomisc"></span> + +</div> +<br> +<div class="biblioentry" id="DAL92"> + <a name="DAL92"></a> + + <span class="abbrev">[DAL92]</span> + <span class="authorgroup"> A. Dalby, J. G. Nourse, W. D. Hounshell, A. K. + Gushurst, D. L. Grier, B. A. Leland, and J. Laufer. “Description of Several Chemical Structure File Formats Used by + Computer Programs Developed at Molecular Design Limited”.</span> + <span class="pagenums">244.</span> + <span class="pubdate">1992.</span> + <span class="biblioset">Journal of Chemical Information and Computer Sciences . </span> + <span class="bibliomisc">An updated online version of this document can be found on <a href="http://www.mdli.com/downloads/literature/ctfile.pdf" target="_top"> http://www.mdli.com/downloads/literature/ctfile.pdf</a>.. </span> + +</div> +<br> +<div class="biblioentry" id="HEL99"> + <a name="HEL99"></a> + + <span class="abbrev">[HEL99]</span> + <span class="authorgroup"> H. E. Helson.“Structure Diagram Generation”.</span> + <span class="pagenums">313-398.</span> + <span class="pubdate">1999.</span> + </span> + <span class="biblioset"> Reviews in Computational Chemistry . + <span class="editor">K. B. Lipkowitz. </span> + <span class="editor">D. B. Boyd. </span> + <span class="publisher"> + <span class="publishername">Wiley-VCH. </span> + <span class="address">New-York. </span> + </span> + +</div> +<br> +<div class="biblioentry" id="KRA00"> +<a name="KRA00"></a> + <span class="abbrev">[KRA00]</span> + <span class="authorgroup"Krause, Stefan, Willighagen, Egon, and Steinbeck, Christoph. </span>“JChemPaint - Using the Collaborative Forces of the Internet to Develop a Free Editor for 2D Chemical Structures”. + <span class="pubdate">2000. </span><span class="pagenums">93-98. </span><span class="volumenum">5. </span></span><span class="biblioset">Molecules. </span> +</div> +<br> +<div class="biblioentry" id="OS"><a name="OS"></a> + <span class="abbrev">[OS]</span> + <span class="bibliomisc"> Several articles (for example "The Cathedral and the Bazaar", "Homesteading the Noosphere") on the foundations of the open-source idea, that are highly recommended reading, were written by Eric S: Raymond and can be found on <a href="http://www.tuxedo.org" target="_top">http://www.tuxedo.org</a>. Further, <a href="http://www.opensource.org" target="_top">http://www.opensource.org</a> is a web site completely dedicated to evangelizing the open-source idea.</span> + +</div> +<br> +<div class="biblioentry" id="PMR99"> + <a name="PMR99"></a> + + <span class="abbrev">[PMR99]</span> + <span class="authorgroup"> P. Murray-Rust and H. S. Rzepa. </span> + “Chemical Markup, XML, and the Worldwide Web. 1. Basic + Principles”. + <span class="pagenums">928-942.</span> + <span class="pubdate">1999.</span> + <span class="biblioset">Journal of Chemical Information and Computer Sciences. </span> + <span class="bibliomisc">For constantly updated documentation of Chemical Markup Language (CML) please see <a href="http://www.xml-cml.org/" target="_top">http://www.xml-cml.org/</a>.</span> +</div> +<br> +<div class="biblioentry" id="XML"><a name="XML"></a> + <span class="abbrev">[XML]</span> + <span class="bibliomisc"> XML is a recommendation written by the World Wide Web + Consortium (W3C). Info on this standard can be found at <a href="http://www.w3.org/TR/1998/REC-xml-19980210" target="_top">http://www.w3.org/TR/1998/REC-xml-19980210</a>.</span> + +</div> +<br> +<div class="biblioentry" id="WEI88"> + <a name="WEI88"></a> + + <span class="abbrev">[WEI88]</span> + <span class="authorgroup">Weininger, David.</span> “SMILES, a Chemical Language and Information System. 1. Introduction to Methodology and Encoding Rules”. + <span class="volumenum"></span> + <span class="issuenum"></span> + <span class="pagenums">31-36.</span> + <span class="pubdate">1988.</span> + <span class="biblioset">Journal of Chemical Information and Computer Sciences.</span> + <span class="bibliomisc"> </span> + +</div> +<br> +<div class="biblioentry" id="WEI89"> + <a name="WEI89"></a> + + <span class="abbrev">[WEI89]</span> + <span class="authorgroup"> Weininger, David, Weininger, Arthur, and Weininger, Joseph L. + “SMILES 2. Algorithm for Generation of Unique SMILES Notation”.</span> + <span class="volumenum"></span> + <span class="issuenum"></span> + <span class="pagenums">97-101.</span> + <span class="pubdate">1989.</span> + <span class="biblioset">Journal of Chemical Information and Computer Sciences. </span> + <span class="bibliomisc"></span> + +</div> +<br> +<div class="navfooter"><hr> + <table width="100%"><tr> + <td align="left" width="40%"><a href="extendingJCP.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a> </td> + <td align="right" width="40%"> </td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="bibliography.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> +</body> +</html> \ No newline at end of file Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/bugs.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/bugs.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/bugs.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,57 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>Finding and Reporting bugs</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">Finding and Reporting bugs</th> + </tr> + <tr> + <td align="left" width="20%"><a href="requirements.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="tutorial.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<body bgcolor="#ffffff"> +<h2>Finding and Reporting bugs</h2> +<p> Though JChemPaint already is very usefull, it is not without errors. + The development team is too small to make the source code 100% bugless. + So, at some stage you will find bugs (apologies for that on beforehand). + However, the open source community is known for quick response in both + acknowledging the bug, and fixing the bug. The JChemPaint team provides + the same standards which is sometimes a bit difficult because there is + so much to do. Nevertheless, we appreciate it very much if bugs got reported; + the JChemPaint team does solve many bugs in each next release.</p> + +<h3> Starting JChemPaint to get debug information </h3> +<p>Debugging is a lot easier when debug information is supplied along with + the bug report. JChemPaint can be started to get debug information like this:</p> + <pre> java -Dcdk.debugging=true -jar jchempaint.jar</pre> +<p>This will create a cdk.log file which can be attached to the bug.</p> + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="requirements.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="tutorial.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="bugs.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/bugs.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/button.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/button.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/button.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,68 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>The Button Panel</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">The Button Panel</th> + </tr> + <tr> + <td align="left" width="20%"><a href="referenceGuide.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="menu.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h2>The Button Panel</h2> +<p> +In the following pages you can find an explanantion of the function of the buttons in the button panel. </p> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="drawingButtons.html"><b>Drawing buttons</b></a></td> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="moveButtons.html"><b>Move buttons</b></a></td> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="otherButtons.html"><b>Other buttons</b></a></td> +<p>But before starting that, let's note the source code which offers this functionality.<br> +JChemPaint's source code provides only the GUI part, but all the +chemoinformational algorithms which make JChemPaint an editor, are provided by +CDK. The two main classes of interest are: +<ul type="circle"> + <li>the renderer.Renderer2D </li> + <li>controller.Controller2D </li> +</ul> +The first deals with graphical rendering of +the chemical information and the second deals with user input using mouse and +button events, and does extend the renderer with editing features. +But the Controller2D does not all editing; it only does the editing +functionality in some editing mode, like the drawing and bond mode. A few +other buttons, and most menu items do not use the functionality in this class, +but provide algorithms from other CDK classes. Where possible, the information +about the buttons will also link to the CDK classes that provide the algorithms used. + + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="referenceGuide.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="menu.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="button.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/button.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/drawingButtons.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/drawingButtons.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/drawingButtons.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,100 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>The Drawing Buttons</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">The Button Panel</th> + </tr> + <tr> + <td align="left" width="20%"><a href="button.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="moveButtons.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h3>The Drawing Buttons</h3><br> + <ul type="circle"> + <li>The drawing button <img src="../../small-bin/bond.gif"></li> + </ul> + <p>Puts JChemapint in the draw mode, which is the standard mode in which + build up chemical structures. If selected you can click on a point on + the document and you'll create a single atom at this point. If you click, + hold and drag the mouse, a bond is created. Multiple clicking on an + existing bond will cycle its bond order between the values 1, 2 and 3.</p> + <p>The algorithms behind this button are provided by the + controller.Controller2D class.</p><br> + + <ul type="circle"> + <li>The up-bond button <img src="../../small-bin/up_bond.gif"></li> + </ul> + <p>This mode enables you to change an existing bond into a filled + wedge - the standard stereo bond desribing that the atom at the thick + end is above the 2D plane in which your are supposed to imagine the atom + at the thin end. Further, if selected, multiple clicking on an existing + bond will change it to a filled wedge and if it already has this shape + it will toggle between the two possible orientations</p>. + <p>The algorithms behind this button are provided by the + controller.Controller2D class.</p><br> + + <ul type="circle"> + <li>The down-bond button <img src="../../small-bin/down_bond.gif"></li> + </ul> + <p>This mode enables you to change an existing bond into a dashed + wedge - the standard stereo bond describing that the atom at the thin end + is below the 2D plane in which your are supposed to imagine the atom at + the thick end. Further, if selected, multiple clicking on an existing + bond will change it to a dashed wedge and if it already has this shape it + will toggle between the two possible orientations.</p> + </p>The algorithms behind this button are provided by the + controller.Controller2D class.</p><br> + + <ul type="circle"> + <li>The Ring templates</li> + </ul> + <p>The ring templates, like, <img src="../../small-bin/triangle.gif">, + <img src="../../small-bin/pentagon.gif">, <img src="../../small-bin/hexagon.gif">, + allow you to draw single + rings and complex ringsystems from a few predefined templates.</p> + <p>A click on an atom places the preselected ring such that the atoms + on which you clicked is one of the ring atoms. Click on a bond and it + will be part of the newly created ring. A new ring is always placed + on the least hindered side of the system. If you don't like the result, + you can click on a bond, hold the mouse button and use the appearing + gray line to indicate side of the bond on which you want to have the + ring placed. Atoms of the newly place ring that are within the snap + radius of existing atoms will be fused with these.</p> + </p>The algorithms behind this button are provided by the + controller.Controller2D class.</p><br> + + + + + + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="button.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="moveButtons.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="button.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> \ No newline at end of file Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/extendingJCP.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/extendingJCP.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/extendingJCP.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,56 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>Extending JChemPaint</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">Extending JChemPaint</th> + </tr> + <tr> + <td align="left" width="20%"><a href="beyond.html">Prev</a></td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="bibliography.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h3>Extending JChemPaint</h3> +<p>This section describes how JChemPaint can be extended to fit personal needs. +All customization is done in your personal directory <code>${HOME}</code>. +The value of <code>${HOME}</code> for your system can be looked up in the Info +dialog from the Help menu.</p> + +<h3>CML/STMML Dictionaries (not in the Applet)</h3> +<p>JChemPaint is aware of dictionaries used in CML. Custom dictionaries can +be installed in the <code>${HOME}/.jchempaint/dicts</code> directory. +When CML files are loaded that use custom dictionaries, putting them in +this directory will enable JChemPaint to understand things.</p> +<p>The dictionaries are expected to be in the STMML format, for which the XML +Schema can be downloaded from the CML website. They look like:</p> + +<br> +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="beyondJCP.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="bibliography.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="beyondJCP.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/extendingJCP.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/fitting.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/fitting.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/fitting.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,60 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>Fitting JChemPaint to your needs</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">Fitting JChemPaint to your needs</th> + </tr> + <tr> + <td align="left" width="20%"><a href="menu.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="beyond.html">Next</a></td> + </tr> + </table> + <hr> +</div> + + +<h2>Fitting JChemPaint to your needs</h2> +<p>This section describes how JChemPaint can be customized to fit your working +environment. Generally, custom settings are stored in your <code>${HOME}/.jchempaint </code> +directory. On UNIX like systems, like SunOS, BSD and Linux systems, <code>${HOME}</code> +is something like <code>/home/user</code>. The value of <code>${HOME}</code> for your system can be +looked up in the Info dialog from the Help menu. + +<h3>Setting the GUI language</h3> +<p>The file ${HOME}/.jchempaint/properties has two properties with which +your local language can be set:</p> +<pre>Locale_language = nl</pre> +<pre>Locale_country = NL</pre> + +<p>This particular example sets the language to Dutch (nl_NL). The default +language is English (en_US).</p> + +<p> + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="menu.html">Prev</a></td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="beyondJCP.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="referenceGuide.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/fitting.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menu.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menu.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menu.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,60 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>The Menu description</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">The Menu description</th> + </tr> + <tr> + <td align="left" width="20%"><a href="button.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="menuFile.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h2>The Menu description</h2> + +<p> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="menuFile.html"><b>File (not for applet)</b></a></td> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="menuEdit.html"><b>Edit</b></a></td> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="menuView.html"><b>View</b></a></td> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="menuInsert.html"><b>Insert</b></a></td> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="menuReport.html"><b>Report</b></a></td> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="menuPlugins.html"><b>Plugins (not for applet)</b></a></td> + <td><img src="../../small-bin/hg_proc.gif" width="18" height="13"></td> + <td><a href="menuHelp.html"><b>Help</b></a></td> + </p> + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="ch01s09.html">Prev</a> </td> + <td align="center" width="20%"><a href="index.html">Home</a></td> + <td align="right" width="40%"><a href="index.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="index.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menu.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuEdit.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuEdit.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuEdit.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,95 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>The Edit Menu</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">The Edit Menu</th> + </tr> + <tr> + <td align="left" width="20%"><a href="menuFile.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="menuView.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h2>The Edit Menu</h2> + +<h3>Undo</h3> + <p>Recovers the state of the frame before the last operation that you did.</p> + +<h3>Undo</h3> + <p>Redos the last undo.</p> + +<h3>New (applet only)</h3> + <p>Cleans the document (in the standalone up, there is a New item in the File menu).</p> + +<h3>Cut Selected</h3> + <p>Removes the selected part from the model.</p> + +<h3>Select all</h3> + <p>Selects and marks all atoms in the molecule, so that it can be rotated, + moved, deleted, etc. This is the only chance to recover parts of the molecule + that are outside the display area - select all, go into move mode and + move the molecule using a visible part of it.</p> + +<h3>Hydrogens</h3> +<h4>Add Implicit Hydrogens</h4> + <p>If switched on, implicit hydrogens will be calculated for all atoms and added. As long as the mode is + switched on, the implict hydrogen count will be adjusted. Note that: + <li> + <listitem>The implict hydrogens will be only visible when the option "Show implicit hydrogens when the atom symbol is shown" + is selected in View -> Options (default: on). For which atoms the symbols are visible is controlled by other settings here.</listitem> + <listitem>If the hydrogens will be contained in an exported file, depends on the file format.(e. g. CML has got implicit Hs, mol has not).</listitem> + </li> + </p> +<h4>Make Hydrogens Explicit</h4> + <p>This will transform implicit hydrogens to + separate atoms connected by a single bond. This will only have an effect if you are in implicit mode (see "Add implicit Hydrogens")</p> +<h4>Make Hydrogens Implicit</h4> + <p>This will delete bonds to hydrogens and add hydrogens directly to their + parent atoms as implicit hydrogens.</p> + +<p> +<h3>Adjust Bond Orders</h3> + <p>Sets the order of all bonds so that every atom is saturated.</p> + +<h3>Reset Bond Orders</h3> + <p>Sets the order of all bonds to single.</p> + +<h3>Clean Up</h3> + <p>This changes coordinates of atoms a length of bonds to standard representation.</p> + +<h3>Model Properties</h3> + <p>Changes properties for this frame. Current properties are: author + (who generated this model), generation date and software. Additionally, + a cas number and checksum can be given.</p> +<p> +<p> + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="menuFile.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="menuView.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="menuEdit.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuEdit.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuFile.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuFile.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuFile.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,132 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>The File menu</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">The File menu</th> + </tr> + <tr> + <td align="left" width="20%"><a href="menu.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="menuEdit.html">Nex</a></td> + </tr> + </table> + <hr> +</div> + +<h2>The File menu</h2> + <h3>New</h3> + <p>A new empty frame is generated. Generation date, author and software by + which this model was generated is now set. + This information can be changed with Edit->Model Properties.</p> + <h3>Open</h3> + <p>Opens a new internal or external frame (depending on if SDI or MDI is used) + frame with structures read from one of the following file formats The type + is determined from the files extension.</p> + <p> + <p>Table 1. Extensions for loadable chemistry file formats</p> +<table border=0 cellpadding=5> + <tr valign="top"> + <td nowrap>.cml</td> + <td>CML files are a chemistry implementation of the the XML standard for + coding information. See the CML homepage for more.</td> + </tr> + <tr valign="top"> + <td nowrap>.mol</td> + <td> MDL mol files. A de-facto standard file format [ DAL92 ] invented by + the company Molecular Design Ldt. . The MDL people call this an SD file.</td> + </tr> + <tr valign="top"> + <td nowrap>.sdf</td> + <td>May contain multiple molecule in SD format, separated by a "$$$$" line. + JChemPaint opens one frame for each structure it finds.</td> + </tr> +</table> + + <h3>Save</h3> + <p>Saves the currently active internal frame to one of the following file + formats. The type is determined from the file extension that you use.</p> + <p> + <p>Table 2. Extensions for chemistry file formats that JChemPaint can write</p> +<table border=0 cellpadding=5> + <tr valign="top"> + <td nowrap>.cml</td> + <td>CML files are a chemistry implementation of the the XML standard for + coding information. See the CML homepage for more.</td> + </tr> + <tr valign="top"> + <td nowrap>.mol</td> + <td>MDL mol files. A de-facto standard file format [ DAL92 ] invented by + the company Molecular Design Ldt. . The MDL people call this an SD file.</td> + </tr> +</table> + + <h3>Export as image</h3> + <p>This menu option can be used to generate images of the structure drawn. + Four formats can be saves: GIF, BMP, TIFF and JPEG. The choice of format is + determined by the extension:</p> + <p> + <p>Table 3. Extensions for image formats</p> +<table border=0 cellpadding=5> + <tr valign="top"> + <td nowrap>.bmp</td> + <td>BMP</td> + </tr> + <tr valign="top"> + <td nowrap>.tiff</td> + <td>TIFF</td> + </tr> + <tr valign="top"> + <td nowrap>.tiff</td> + <td>TIFF</td> + </tr> + <tr valign="top"> + <td nowrap>.gif</td> + <td>GIF</td> + </tr> + <tr valign="top"> + <td nowrap>.png</td> + <td>PNG</td> + </tr> + <tr valign="top"> + <td nowrap>.svg</td> + <td>Scalable Vector Graphics (SVG)</td> + </tr> + <tr valign="top"> + <td nowrap>.other</td> + <td>JPEG</td> + </tr> +</table> + + <h3>Export CompChem</h3> + <p>This allows export in formats used in computational chemistry. Currently + export as an input for Gaussian is possible.</p> + <h3>Exit</h3> + <p>This quits JChemPaint.</p> + + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="menu.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="menuEdit.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="menuFile.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuFile.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuHelp.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuHelp.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuHelp.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,57 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>The Help Menu</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">The Help Menu</th> + </tr> + <tr> + <td align="left" width="20%"><a href="menuPlugins.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="fitting.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h2>The Help Menu</h2> + +<h3>Info</h3> + <p>Displays JChemPaint version and the user's home directory.</p> + +<h3>Help</h3> + <p>Displays this user guide.</p> + +<h3>About</h3> + <p>Displays the About box of JChemPaint, showing information on JChemPaint, + including the version number. +</p> + +<h3>License</h3> + <p>Displays JChemPaint's license.</p> + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="menuPlugins.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="fitting.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="menuHelp.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuHelp.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuInsert.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuInsert.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuInsert.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,53 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>The Insert Menu</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">The Insert Menu</th> + </tr> + <tr> + <td align="left" width="20%"><a href="menuView.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="menuReport.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h2>The Insert Menu</h2> + + <h3>Insert SMILES/InChI/CAS</h3> + <p>Can be used in to type a SMILES/InChI/CAS number of which the structure is to be drawn.</p> + <p>The SMILES is parsed by CDK's smiles.SmilesParser class and layout into a 2D + structure using the layout.StructureDiagramGenerator.</p> + <p>The CAS number is looked up in the pubchem database. You need to be online to have this working. If the CAS is not in PubChem, it will not work.</p> + <p>The InChI is read via the InChI implementation form IUPAC. This is a C++ code, which must be installed separately (see <a href="http://sourceforge.net/projects/jni-inchi">http://sourceforge.net/projects/jni-inchi</a>). Layout is again done via CDK's StructureDiagramGenerator.</p> +<p> + Return to <A HREF="../jhugTOC.html">table of contents</A> --> +<p> + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="menuView.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="menuReport.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="menuInsert.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html> Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuInsert.html ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuPlugins.html =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuPlugins.html (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/userhelp_jcp/contain/menuPlugins.html 2009-01-12 17:18:40 UTC (rev 13863) @@ -0,0 +1,46 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> + +<html> +<head> +<title>The Plugins Menu</title> +<link rel="stylesheet" type="text/css" href="../jcp.css" title="Style"> +</head> +<body bgcolor="#ffffff"> + +<div class="navheader"> + <table width="100%"> + <tr> + <th align="center" colspan="3">The Plugins Menu</th> + </tr> + <tr> + <td align="left" width="20%"><a href="menuReport.html">Prev</a> </td> + <th align="center" width="60%"> </th> + <td align="right" width="20%"> <a href="menuHelp.html">Next</a></td> + </tr> + </table> + <hr> +</div> + +<h2>The Plugins Menu</h2> +<p>If you have installed any plugins, they will appear here. See the section +called &ldquoCDK Plugins&rdquo .</p> +<p> + +<div class="navfooter"><hr> + <table width="100%"> + <tr> + <td align="left" width="40%"><a href="menuReport.html">Prev</a> </td> + <td align="center" width="20%"><a href="../jcp.html">Home</a></td> + <td align="right" width="40%"><a href="menuHelp.html">Next</a></td> + </tr> + <tr> + <td align="left" width="40%"> </td> + <td align="center" width="20%"><a href="menuPlugins.html">Up</a></td> + <td align="right" width="40%"> </td> + </tr> + </table> +</div> + + +</body> +</html... [truncated message content] |
From: <sh...@us...> - 2009-01-12 17:36:55
|
Revision: 13864 http://cdk.svn.sourceforge.net/cdk/?rev=13864&view=rev Author: shk3 Date: 2009-01-12 17:36:47 +0000 (Mon, 12 Jan 2009) Log Message: ----------- added the about dialog Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/AboutAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/AboutDialog.java Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/AboutAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/AboutAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/AboutAction.java 2009-01-12 17:36:47 UTC (rev 13864) @@ -0,0 +1,51 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn, Christoph Steinbeck + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.jchempaint.dialog.AboutDialog; + +/** + * Action to pop-up an About JChemPaint dialog. + * + */ +public class AboutAction extends JCPAction +{ + + private static final long serialVersionUID = 1420132959122535398L; + + public void actionPerformed(ActionEvent e) + { + AboutDialog ad = new AboutDialog(); + ad.pack(); + ad.setVisible(true); + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/AboutAction.java ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/AboutDialog.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/AboutDialog.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/AboutDialog.java 2009-01-12 17:36:47 UTC (rev 13864) @@ -0,0 +1,106 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn, Tobias Helmus + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.net.URL; + +import javax.swing.BorderFactory; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JTextArea; +import javax.swing.border.Border; + +import org.openscience.cdk.tools.LoggingTool; +import org.openscience.jchempaint.JCPPropertyHandler; +import org.openscience.jchempaint.action.JCPAction; + + +/** + * Simple Dialog that shows the JCP logo and a textfield that allows + * the user to copy&paste the URL of JChemPaints main site. + * + * @cdk.created 27. April 2005 + */ +public class AboutDialog extends JFrame { + + private static final long serialVersionUID = 8890609574363086221L; + + protected static LoggingTool logger = null; + + /** Displays the About Dialog for JChemPaint. */ + public AboutDialog() { + super("About JChemPaint"); + logger = new LoggingTool(this); + doInit(); + } + + public void doInit() { + Package self = Package.getPackage("org.openscience.jchempaint"); + String version = self.getImplementationVersion(); + String s1 = "JChemPaint " + version + "\n"; + s1 += "An open-source editor for 2D chemical structures."; + String s2 = "An OpenScience project by Christoph Steinbeck, Egon Willighagen and others.\n"; + s2 += "See 'http://jchempaint.sourceforge.net' for more information."; + + getContentPane().setLayout(new BorderLayout()); + getContentPane().setBackground(Color.white); + + JLabel label1 = new JLabel(); + + try { + JCPPropertyHandler jcpph = JCPPropertyHandler.getInstance(); + URL url = jcpph.getResource("jcplogo" + JCPAction.imageSuffix); + ImageIcon icon = new ImageIcon(url); + //ImageIcon icon = new ImageIcon(../resources/); + label1 = new JLabel(icon); + } catch (Exception exception) { + logger.error("Cannot add JCP logo: " + exception.getMessage()); + logger.debug(exception); + } + label1.setBackground(Color.white); + + Border lb = BorderFactory.createLineBorder(Color.white, 5); + JTextArea jtf1 = new JTextArea(s1); + jtf1.setBorder(lb); + jtf1.setEditable(false); + JTextArea jtf2 = new JTextArea(s2); + jtf2.setEditable(false); + jtf2.setBorder(lb); + setTitle("About JChemPaint"); + getContentPane().add("Center", label1); + getContentPane().add("North", jtf1); + getContentPane().add("South", jtf2); + pack(); + setVisible(true); + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/AboutDialog.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-12 17:18:40 UTC (rev 13863) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-12 17:36:47 UTC (rev 13864) @@ -193,7 +193,7 @@ infoAction=org.openscience.cdk.applications.jchempaint.action.InfoAction@general helpAction=org.openscience.jchempaint.action.HelpAction tutorialAction=org.openscience.cdk.applications.jchempaint.action.HelpAction@tutorial -aboutAction=org.openscience.cdk.applications.jchempaint.action.AboutAction +aboutAction=org.openscience.jchempaint.action.AboutAction licenseAction=org.openscience.cdk.applications.jchempaint.action.LicenseAction # Popup specific actions This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-01-12 18:03:03
|
Revision: 13865 http://cdk.svn.sourceforge.net/cdk/?rev=13865&view=rev Author: shk3 Date: 2009-01-12 18:02:53 +0000 (Mon, 12 Jan 2009) Log Message: ----------- added the license dialog Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/LicenseAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/LicenseDialog.java Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/LicenseAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/LicenseAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/LicenseAction.java 2009-01-12 18:02:53 UTC (rev 13865) @@ -0,0 +1,51 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn, Christoph Steinbeck + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import org.openscience.jchempaint.dialog.LicenseDialog; + +/** + * Shows the dialog displaying JCPs license + * + */ +public class LicenseAction extends JCPAction +{ + + private static final long serialVersionUID = -1800997374859623178L; + + public void actionPerformed(ActionEvent e) + { + LicenseDialog ad = new LicenseDialog(); + ad.pack(); + ad.setVisible(true); + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/LicenseAction.java ___________________________________________________________________ Added: svn:executable + * Added: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/LicenseDialog.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/LicenseDialog.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/LicenseDialog.java 2009-01-12 18:02:53 UTC (rev 13865) @@ -0,0 +1,115 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.dialog; + +import java.awt.BorderLayout; +import java.awt.Color; + +import javax.swing.BorderFactory; +import javax.swing.JFrame; +import javax.swing.JTextArea; +import javax.swing.border.Border; + + + +/** + * Simple Dialog that shows the JCP logo and a textfield that allows + * the user to copy&paste the URL of JChemPaints main site. + * + */ +public class LicenseDialog extends JFrame { + + private static final long serialVersionUID = 456097659412955696L; + + + /** + * Displays the License Dialog for JChemPaint. + */ + public LicenseDialog() { + super("JChemPaint License"); + doInit(); + } + + + public void doInit(){ + Package self = Package.getPackage("org.openscience.jchempaint"); + String version = self.getImplementationVersion(); + + String s1 = + "JChemPaint " + version + " is licensed LGPL, but " + + "the libraries it uses have different licenses.\n" + + "See 'http://jchempaint.sourceforge.net' for further information " + + "about the license you accept when using this software.\n\n"; + String s2 = + "Copyright (C) 1997-2008 The JChemPaint project\n" + + "\n" + + "Contact: cdk...@li...\n" + + "\n" + + "This program is free software; you can redistribute it and/or\n" + + "modify it under the terms of the GNU Lesser General Public License\n" + + "as published by the Free Software Foundation; either version 2.1\n" + + "of the License, or (at your option) any later version.\n" + + "All we ask is that proper credit is given for our work, which includes\n" + + "- but is not limited to - adding the above copyright notice to the beginning\n" + + "of your source code files, and to any copyright notice that you may distribute\n" + + "with programs based on this work.\n\n" + + + "This program is distributed in the hope that it will be useful,\n" + + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + + "GNU Lesser General Public License for more details.\n\n" + + + "You should have received a copy of the GNU Lesser General Public License\n" + + "along with this program; if not, write to the Free Software\n" + + "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\n"; + + //JLabel label1 = new JLabel(); + getContentPane().setLayout(new BorderLayout()); + setBackground(Color.white); + try { + // XXX needs to be fixed + //ImageIcon icon = new ImageIcon(JChemPaint.jcplogo); + //label1 = new JLabel(icon); + } catch(Exception exc) { + exc.printStackTrace(); + } + Border lb = BorderFactory.createLineBorder(Color.white, 5); + JTextArea jtf1 = new JTextArea(s1); + jtf1.setBorder(lb); + jtf1.setEditable(false); + JTextArea jtf2 = new JTextArea(s2); + jtf2.setEditable(false); + jtf2.setBorder(lb); + setTitle("About JChemPaint's License"); + getContentPane().add("Center",jtf2); + getContentPane().add("North",jtf1); + pack(); + setVisible(true); + } +} Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/LicenseDialog.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties 2009-01-12 17:36:47 UTC (rev 13864) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties 2009-01-12 18:02:53 UTC (rev 13865) @@ -62,7 +62,7 @@ view=toolbar++ statusbar+ menubar++ insertstructure+ - zoomin zoomout zoomoriginal - renderOptions report=@validate @atomType - createSMILES createInChI dict=showDicts -help=info help tutorial - about license +help=help tutorial - about license hydrogen=addImplHydrogen++ makeHydrogenExplicit makeHydrogenImplicit preferences=editPreferences Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2009-01-12 17:36:47 UTC (rev 13864) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2009-01-12 18:02:53 UTC (rev 13865) @@ -62,7 +62,7 @@ view=toolbar++ statusbar++ menubar++ insertstructure++ - zoomin zoomout zoomoriginal - renderOptions report=@validate @atomType - createSMILES createInChI dict=showDicts -help=info help tutorial - about license +help=help tutorial - about license hydrogen=addImplHydrogen++ makeHydrogenExplicit makeHydrogenImplicit preferences=editPreferences reloadPreferences savePreferences Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-12 17:36:47 UTC (rev 13864) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-12 18:02:53 UTC (rev 13865) @@ -190,11 +190,10 @@ atMmff94Action=org.openscience.jchempaint.action.PerceiveAtomTypesAction@mmff94 # Help menu -infoAction=org.openscience.cdk.applications.jchempaint.action.InfoAction@general helpAction=org.openscience.jchempaint.action.HelpAction -tutorialAction=org.openscience.cdk.applications.jchempaint.action.HelpAction@tutorial +tutorialAction=org.openscience.jchempaint.action.HelpAction@tutorial aboutAction=org.openscience.jchempaint.action.AboutAction -licenseAction=org.openscience.cdk.applications.jchempaint.action.LicenseAction +licenseAction=org.openscience.jchempaint.action.LicenseAction # Popup specific actions selectFromChemObjectAction=org.openscience.jchempaint.action.EditAction@selectFromChemObject This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-01-14 13:21:11
|
Revision: 13874 http://cdk.svn.sourceforge.net/cdk/?rev=13874&view=rev Author: shk3 Date: 2009-01-14 13:21:00 +0000 (Wed, 14 Jan 2009) Log Message: ----------- activated the flip action Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/FlipAction.java Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/FlipAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/FlipAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/FlipAction.java 2009-01-14 13:21:00 UTC (rev 13874) @@ -0,0 +1,51 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Egon Willighagen, Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +/** + * Action to flip selected part of a structure + * + */ +public class FlipAction extends JCPAction { + + private static final long serialVersionUID = 2360209016030592684L; + + public void actionPerformed(ActionEvent e) { + logger.info(" type ", type); + logger.debug(" source ", e.getSource()); + boolean horiz = "horizontal".equals(type); + jcpPanel.get2DHub().flip(horiz); + // fire a change so that the view gets updated + jcpPanel.get2DHub().updateView(); + } + +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/FlipAction.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-14 13:20:40 UTC (rev 13873) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-14 13:21:00 UTC (rev 13874) @@ -105,8 +105,8 @@ editPreferencesAction=org.openscience.jchempaint.action.ModifyGeneralSettingsAction savePreferencesAction=org.openscience.jchempaint.action.PreferencesAction@save reloadPreferencesAction=org.openscience.jchempaint.action.PreferencesAction@reload -flipHorizontalAction=org.openscience.cdk.applications.jchempaint.action.FlipAction@horizontal -flipVerticalAction=org.openscience.cdk.applications.jchempaint.action.FlipAction@vertical +flipHorizontalAction=org.openscience.jchempaint.action.FlipAction@horizontal +flipVerticalAction=org.openscience.jchempaint.action.FlipAction@vertical # Change symbol actions symbolBAction=org.openscience.jchempaint.action.ChangeAtomSymbolAction@B This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-01-23 16:16:38
|
Revision: 13971 http://cdk.svn.sourceforge.net/cdk/?rev=13971&view=rev Author: shk3 Date: 2009-01-23 16:16:34 +0000 (Fri, 23 Jan 2009) Log Message: ----------- I extracted redundant methods from JCPMenuBar and JCPPopupMenuBar, which were worrying me for a while Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-01-23 15:32:03 UTC (rev 13970) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-01-23 16:16:34 UTC (rev 13971) @@ -195,13 +195,10 @@ entries.put("Ring 8", GT._("Ring 8")); entries.put("Add or convert to bond up", GT._("Add or convert to bond up")); entries.put("Add or convert to bond down", GT._("Add or convert to bond down")); - entries.put("Add or convert to bond up", GT._("Add or convert to bond up")); - entries.put("Add or convert to bond down", GT._("Add or convert to bond down")); entries.put("Decrease Charge", GT._("Decrease Charge")); entries.put("Increase Charge", GT._("Increase Charge")); entries.put("Cycle Symbol", GT._("Cycle Symbol")); entries.put("Delete", GT._("Delete")); - entries.put("Select", GT._("Select")); entries.put("Benzene", GT._("Benzene")); } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java 2009-01-23 15:32:03 UTC (rev 13970) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java 2009-01-23 16:16:34 UTC (rev 13971) @@ -28,21 +28,10 @@ */ package org.openscience.jchempaint; -import java.lang.reflect.Field; -import java.util.MissingResourceException; -import java.util.Properties; - import javax.swing.Box; -import javax.swing.JCheckBoxMenuItem; -import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JMenuBar; -import javax.swing.JMenuItem; -import javax.swing.KeyStroke; -import org.openscience.cdk.tools.LoggingTool; -import org.openscience.jchempaint.action.JCPAction; - /** * JChemPaint menu bar * @@ -51,23 +40,11 @@ private static final long serialVersionUID = -8358165408129203644L; - private LoggingTool logger; - - private String guiString = "stable"; - - private JCPAction jcpaction; - - /** - * The default constructor method. - * - * @param jcpPanel Description of the Parameter - */ - public JChemPaintMenuBar(JChemPaintPanel jcpPanel) { - this(jcpPanel, "stable"); - } - - - /** + private String guiString = "stable"; + + private JChemPaintMenuHelper menuHelper=new JChemPaintMenuHelper(); + + /** * The more flexible constructor method. * * @param jcpPanel Description of the Parameter @@ -86,7 +63,6 @@ * @param menuDefinition Description of the Parameter */ public JChemPaintMenuBar(JChemPaintPanel jcpPanel, String menuDefinition, String guiString) { - logger = new LoggingTool(this); this.guiString = guiString; createMenubar(jcpPanel, menuDefinition); } @@ -106,7 +82,7 @@ String menuDefinition) { addNormalMenuBar(jcpPanel, menuDefinition); this.add(Box.createHorizontalGlue()); - this.add(createMenu(jcpPanel, "help")); + this.add(menuHelper.createMenu(jcpPanel, "help", false, guiString)); } @@ -122,11 +98,11 @@ private void addNormalMenuBar(JChemPaintPanel jcpPanel, String menuDefinition) { String definition = menuDefinition; if (definition == null) { - definition = getMenuResourceString("menubar"); + definition = menuHelper.getMenuResourceString("menubar", guiString); } String[] menuKeys = StringHelper.tokenize(definition); for (int i = 0; i < menuKeys.length; i++) { - JMenu m = createMenu(jcpPanel, menuKeys[i]); + JMenu m = menuHelper.createMenu(jcpPanel, menuKeys[i], false, guiString); if (m != null) { this.add(m); } @@ -141,11 +117,11 @@ * @return The created JMenu */ public JMenu getMenuForEmbedded(JChemPaintPanel jcpPanel) { - String definition = getMenuResourceString("menubar"); + String definition = menuHelper.getMenuResourceString("menubar", guiString); String[] menuKeys = StringHelper.tokenize(definition); JMenu superMenu = new JMenu("JChemPaint"); for (int i = 0; i < menuKeys.length; i++) { - JMenu m = createMenu(jcpPanel, menuKeys[i]); + JMenu m = menuHelper.createMenu(jcpPanel, menuKeys[i], false,guiString); if (m != null) { superMenu.add(m); } @@ -153,165 +129,5 @@ return (superMenu); } - - /** - * Creates a JMenu given by a String with all the MenuItems specified in the - * properties file. - * - * @param key The String used to identify the Menu - * @param jcpPanel Description of the Parameter - * @return The created JMenu - */ - protected JMenu createMenu(JChemPaintPanel jcpPanel, String key) { - logger.debug("Creating menu: ", key); - String[] itemKeys = StringHelper.tokenize(getMenuResourceString(key)); - JMenu menu = new JMenu(JCPMenuTextMaker.getInstance().getText(key)); - for (int i = 0; i < itemKeys.length; i++) { - if (itemKeys[i].equals("-")) { - menu.addSeparator(); - } - else if (itemKeys[i].startsWith("@")) { - JMenu me = createMenu(jcpPanel, itemKeys[i].substring(1)); - menu.add(me); - } - else if (itemKeys[i].endsWith("+")) { - JMenuItem mi; - if(itemKeys[i].endsWith("++")) - mi = createMenuItem(jcpPanel, - itemKeys[i].substring(0, itemKeys[i].length() - 2), - true, true - ); - else - mi = createMenuItem(jcpPanel, - itemKeys[i].substring(0, itemKeys[i].length() - 1), - true, false - ); - menu.add(mi); - } - else { - JMenuItem mi = createMenuItem(jcpPanel, itemKeys[i], false, false); - menu.add(mi); - } - } - return menu; - } - - - /** - * Gets the menuResourceString attribute of the JChemPaint object - * - * @param key Description of the Parameter - * @return The menuResourceString value - */ - public String getMenuResourceString(String key) { - String str; - try { - str = JCPPropertyHandler.getInstance().getGUIDefinition(this.guiString).getString(key); - } catch (MissingResourceException mre) { - str = null; - } - return str; - } - - - /** - * Adds ShortCuts to the JChemPaintMenuBar object - * - * @param cmd String The Strin to identify the MenuItem - * @param mi the regarding MenuItem - * @param jcp The feature to be added to the ShortCuts attribute - */ - private void addShortCuts(String cmd, JMenuItem mi, JChemPaintPanel jcp) { - Properties shortCutProps = JCPPropertyHandler.getInstance().getJCPShort_Cuts(); - String shortCuts = shortCutProps.getProperty(cmd); - String charString = null; - if (shortCuts != null) { - try { - String[] scStrings = shortCuts.trim().split(","); - if (scStrings.length > 1) { - charString = scStrings[1]; - String altKey = scStrings[0] + "_MASK"; - Field field = Class.forName("java.awt.event.InputEvent").getField(altKey); - int i = field.getInt(Class.forName("java.awt.event.InputEvent")); - mi.setAccelerator(KeyStroke.getKeyStroke(charString.charAt(0), i)); - jcp.registerKeyboardAction(mi.getActionListeners()[0], charString, KeyStroke.getKeyStroke(charString.charAt(0), i), JComponent.WHEN_IN_FOCUSED_WINDOW); - } - else { - charString = "VK_" + scStrings[0]; - Field field = Class.forName("java.awt.event.KeyEvent").getField(charString); - int i = field.getInt(Class.forName("java.awt.event.KeyEvent")); - mi.setAccelerator(KeyStroke.getKeyStroke(i, 0)); - jcp.registerKeyboardAction(mi.getActionListeners()[0], charString, KeyStroke.getKeyStroke(i, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); - } - } catch (ClassNotFoundException cnfe) { - cnfe.printStackTrace(); - } catch (NoSuchFieldException nsfe) { - nsfe.printStackTrace(); - } catch (IllegalAccessException iae) { - iae.printStackTrace(); - } - } - } - - /** - * Craetes a JMenuItem given by a String and adds the right ActionListener to - * it. - * - * @param cmd String The Strin to identify the MenuItem - * @param jcpPanel Description of the Parameter - * @param isCheckBox Description of the Parameter - * @param isChecked Description of the Parameter - * @return JMenuItem The created JMenuItem - */ - protected JMenuItem createMenuItem(JChemPaintPanel jcpPanel, String cmd, boolean isCheckBox, boolean isChecked) { - logger.debug("Creating menu item: ", cmd); - String translation = "***" + cmd + "***"; - try { - translation = JCPMenuTextMaker.getInstance().getText(cmd); - logger.debug("Found translation: ", translation); - } catch (MissingResourceException mre) { - logger.error("Could not find translation for: " + cmd); - } - JMenuItem mi = null; - if (isCheckBox) { - mi = new JCheckBoxMenuItem(translation); - mi.setSelected(isChecked); - } - else { - mi = new JMenuItem(translation); - } - logger.debug("Created new menu item..."); - String astr = JCPPropertyHandler.getInstance().getResourceString(cmd + JCPAction.actionSuffix); - if (astr == null) { - astr = cmd; - } - mi.setActionCommand(astr); - JCPAction action = getJCPAction().getAction(jcpPanel, astr); - if (action != null) { - // sync some action properties with menu - mi.setEnabled(action.isEnabled()); - mi.addActionListener(action); - logger.debug("Coupled action to new menu item..."); - } - else { - logger.error("Could not find JCPAction class for:" + astr); - mi.setEnabled(false); - } - addShortCuts(cmd, mi, jcpPanel); - return mi; - } - - /** - * Return the JCPAction instance associated with this JCPPanel - * - *@return The jCPAction value - */ - public JCPAction getJCPAction() { - if (jcpaction == null) { - jcpaction = new JCPAction(); - } - return jcpaction; - } - } Added: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java 2009-01-23 16:16:34 UTC (rev 13971) @@ -0,0 +1,185 @@ +package org.openscience.jchempaint; + +import java.lang.reflect.Field; +import java.util.MissingResourceException; +import java.util.Properties; + +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JComponent; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.KeyStroke; + +import org.openscience.jchempaint.action.JCPAction; +import org.openscience.cdk.tools.LoggingTool; + +public class JChemPaintMenuHelper { + + private LoggingTool logger; + private JCPAction jcpaction; + + + public JChemPaintMenuHelper(){ + this.logger=new LoggingTool(); + } + + + /** + * Return the JCPAction instance associated with this JCPPanel + * + *@return The jCPAction value + */ + public JCPAction getJCPAction() { + if (jcpaction == null) { + jcpaction = new JCPAction(); + } + return jcpaction; + } + + /** + * Gets the menuResourceString attribute of the JChemPaint object + * + * @param key Description of the Parameter + * @return The menuResourceString value + */ + public String getMenuResourceString(String key, String guiString) { + String str; + try { + str = JCPPropertyHandler.getInstance().getGUIDefinition(guiString).getString(key); + } catch (MissingResourceException mre) { + str = null; + } + return str; + } + + /** + * Creates a JMenu given by a String with all the MenuItems specified in the + * properties file. + * + * @param key The String used to identify the Menu + * @param jcpPanel Description of the Parameter + * @return The created JMenu + */ + protected JMenu createMenu(JChemPaintPanel jcpPanel, String key, boolean isPopup, String guiString) { + logger.debug("Creating menu: ", key); + String[] itemKeys = StringHelper.tokenize(getMenuResourceString(key, guiString)); + JMenu menu = new JMenu(JCPMenuTextMaker.getInstance().getText(key)); + for (int i = 0; i < itemKeys.length; i++) { + if (itemKeys[i].equals("-")) { + menu.addSeparator(); + } + else if (itemKeys[i].startsWith("@")) { + JMenu me = createMenu(jcpPanel, itemKeys[i].substring(1), isPopup, guiString); + menu.add(me); + } + else if (itemKeys[i].endsWith("+")) { + JMenuItem mi; + if(itemKeys[i].endsWith("++")) + mi = createMenuItem(jcpPanel, + itemKeys[i].substring(0, itemKeys[i].length() - 2), + true, true, isPopup + ); + else + mi = createMenuItem(jcpPanel, + itemKeys[i].substring(0, itemKeys[i].length() - 1), + true, false, isPopup + ); + menu.add(mi); + } + else { + JMenuItem mi = createMenuItem(jcpPanel, itemKeys[i], false, false, isPopup); + menu.add(mi); + } + } + return menu; + } + + + /** + * Craetes a JMenuItem given by a String and adds the right ActionListener to + * it. + * + * @param cmd String The Strin to identify the MenuItem + * @param jcpPanel Description of the Parameter + * @param isCheckBox Description of the Parameter + * @param isChecked Description of the Parameter + * @return JMenuItem The created JMenuItem + */ + protected JMenuItem createMenuItem(JChemPaintPanel jcpPanel, String cmd, boolean isCheckBox, boolean isChecked, boolean isPopupMenu) { + logger.debug("Creating menu item: ", cmd); + String translation = "***" + cmd + "***"; + try { + translation = JCPMenuTextMaker.getInstance().getText(cmd); + logger.debug("Found translation: ", translation); + } catch (MissingResourceException mre) { + logger.error("Could not find translation for: " + cmd); + } + JMenuItem mi = null; + if (isCheckBox) { + mi = new JCheckBoxMenuItem(translation); + mi.setSelected(isChecked); + } + else { + mi = new JMenuItem(translation); + } + logger.debug("Created new menu item..."); + String astr = JCPPropertyHandler.getInstance().getResourceString(cmd + JCPAction.actionSuffix); + if (astr == null) { + astr = cmd; + } + mi.setActionCommand(astr); + JCPAction action = getJCPAction().getAction(jcpPanel, astr, isPopupMenu); + if (action != null) { + // sync some action properties with menu + mi.setEnabled(action.isEnabled()); + mi.addActionListener(action); + logger.debug("Coupled action to new menu item..."); + } + else { + logger.error("Could not find JCPAction class for:" + astr); + mi.setEnabled(false); + } + if(!isPopupMenu) + addShortCuts(cmd, mi, jcpPanel); + return mi; + } + + /** + * Adds ShortCuts to the JChemPaintMenuBar object + * + * @param cmd String The Strin to identify the MenuItem + * @param mi the regarding MenuItem + * @param jcp The feature to be added to the ShortCuts attribute + */ + private void addShortCuts(String cmd, JMenuItem mi, JChemPaintPanel jcp) { + Properties shortCutProps = JCPPropertyHandler.getInstance().getJCPShort_Cuts(); + String shortCuts = shortCutProps.getProperty(cmd); + String charString = null; + if (shortCuts != null) { + try { + String[] scStrings = shortCuts.trim().split(","); + if (scStrings.length > 1) { + charString = scStrings[1]; + String altKey = scStrings[0] + "_MASK"; + Field field = Class.forName("java.awt.event.InputEvent").getField(altKey); + int i = field.getInt(Class.forName("java.awt.event.InputEvent")); + mi.setAccelerator(KeyStroke.getKeyStroke(charString.charAt(0), i)); + jcp.registerKeyboardAction(mi.getActionListeners()[0], charString, KeyStroke.getKeyStroke(charString.charAt(0), i), JComponent.WHEN_IN_FOCUSED_WINDOW); + } + else { + charString = "VK_" + scStrings[0]; + Field field = Class.forName("java.awt.event.KeyEvent").getField(charString); + int i = field.getInt(Class.forName("java.awt.event.KeyEvent")); + mi.setAccelerator(KeyStroke.getKeyStroke(i, 0)); + jcp.registerKeyboardAction(mi.getActionListeners()[0], charString, KeyStroke.getKeyStroke(i, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); + } + } catch (ClassNotFoundException cnfe) { + cnfe.printStackTrace(); + } catch (NoSuchFieldException nsfe) { + nsfe.printStackTrace(); + } catch (IllegalAccessException iae) { + iae.printStackTrace(); + } + } + } +} Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-01-23 15:32:03 UTC (rev 13970) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-01-23 16:16:34 UTC (rev 13971) @@ -128,23 +128,23 @@ { if (inputAdapter.getPopupMenu(PseudoAtom.class) == null) { - inputAdapter.setPopupMenu(PseudoAtom.class, new JChemPaintPopupMenu(this, "pseudo")); + inputAdapter.setPopupMenu(PseudoAtom.class, new JChemPaintPopupMenu(this, "pseudo", this.guistring)); } if (inputAdapter.getPopupMenu(Atom.class) == null) { - inputAdapter.setPopupMenu(Atom.class, new JChemPaintPopupMenu(this, "atom")); + inputAdapter.setPopupMenu(Atom.class, new JChemPaintPopupMenu(this, "atom", this.guistring)); } if (inputAdapter.getPopupMenu(Bond.class) == null) { - inputAdapter.setPopupMenu(Bond.class, new JChemPaintPopupMenu(this, "bond")); + inputAdapter.setPopupMenu(Bond.class, new JChemPaintPopupMenu(this, "bond", this.guistring)); } if (inputAdapter.getPopupMenu(ChemModel.class) == null) { - inputAdapter.setPopupMenu(ChemModel.class, new JChemPaintPopupMenu(this, "chemmodel")); + inputAdapter.setPopupMenu(ChemModel.class, new JChemPaintPopupMenu(this, "chemmodel", this.guistring)); } if (inputAdapter.getPopupMenu(Reaction.class) == null) { - inputAdapter.setPopupMenu(Reaction.class, new JChemPaintPopupMenu(this, "reaction")); + inputAdapter.setPopupMenu(Reaction.class, new JChemPaintPopupMenu(this, "reaction", this.guistring)); } } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java 2009-01-23 15:32:03 UTC (rev 13970) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java 2009-01-23 16:16:34 UTC (rev 13971) @@ -30,16 +30,11 @@ */ package org.openscience.jchempaint; -import java.util.MissingResourceException; - -import javax.swing.JCheckBoxMenuItem; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import org.openscience.cdk.interfaces.IChemObject; -import org.openscience.cdk.tools.LoggingTool; -import org.openscience.jchempaint.action.JCPAction; /** * A pop-up menu for JChemPaint @@ -49,9 +44,9 @@ { private static final long serialVersionUID = -1172105004348414589L; - private LoggingTool logger; - private JCPAction jcpaction; private IChemObject source; + private JChemPaintMenuHelper menuHelper=new JChemPaintMenuHelper(); + private String guiString = "stable"; public void setSource(IChemObject object) { this.source = object; @@ -67,15 +62,15 @@ *@param jcpPanel Description of the Parameter *@param type Description of the Parameter */ - JChemPaintPopupMenu(JChemPaintPanel jcpPanel, String type) + JChemPaintPopupMenu(JChemPaintPanel jcpPanel, String type, String guiString) { - logger = new LoggingTool(this); + this.guiString = guiString; createPopupMenu(jcpPanel, type); } protected void createPopupMenu(JChemPaintPanel jcpPanel, String type) { - String[] menuKeys = StringHelper.tokenize(getMenuResourceString(type + "popup")); + String[] menuKeys = StringHelper.tokenize(menuHelper.getMenuResourceString(type + "popup", guiString)); String menuTitle = JCPMenuTextMaker.getInstance().getText(type + "MenuTitle"); JMenuItem titleMenuItem = new JMenuItem(menuTitle); titleMenuItem.setEnabled(false); @@ -90,11 +85,11 @@ this.addSeparator(); } else if (menuKey.startsWith("@")) { - JMenu me = createMenu(jcpPanel, menuKey.substring(1)); + JMenu me = menuHelper.createMenu(jcpPanel, menuKey.substring(1),true, guiString); this.add(me); } else { - JMenuItem item = createMenuItem(jcpPanel, menuKey,false,false); + JMenuItem item = menuHelper.createMenuItem(jcpPanel, menuKey,false,false,true); if (item != null) { this.add(item); @@ -102,129 +97,5 @@ } } } - - - /** - * Craetes a JMenuItem given by a String and adds the right ActionListener to - * it. - * - *@param cmd String The Strin to identify the MenuItem - *@param jcpPanel Description of the Parameter - *@return JMenuItem The created JMenuItem - */ - protected JMenuItem createMenuItem(JChemPaintPanel jcpPanel, String cmd, boolean isCheckBox, boolean isChecked) - { - logger.debug("Creating menu item: ", cmd); - String translation = "***" + cmd + "***"; - try - { - translation = JCPMenuTextMaker.getInstance().getText(cmd); - } catch (MissingResourceException mre) - { - logger.error("Could not find translation for: " + cmd); - } - JMenuItem mi = null; - if (isCheckBox) { - mi = new JCheckBoxMenuItem(translation); - mi.setSelected(isChecked); - } - else { - mi = new JMenuItem(translation); - } - String astr = JCPPropertyHandler.getInstance().getResourceString(cmd + JCPAction.actionSuffix); - if (astr == null) - { - astr = cmd; - } - mi.setActionCommand(astr); - JCPAction a = getJCPAction().getAction(jcpPanel, astr, true); - if (a != null) - { - mi.addActionListener(a); - mi.setEnabled(a.isEnabled()); - } else - { - logger.warn("Could not find JCPAction class for:" + astr); - mi.setEnabled(false); - } - return mi; - } - - protected JMenu createMenu(JChemPaintPanel jcpPanel, String key) - { - logger.debug("Creating menu: ", key); - String[] itemKeys = StringHelper.tokenize(getMenuResourceString(key)); - String translation = "***" + key + "***"; - try - { - translation = JCPMenuTextMaker.getInstance().getText(key); - } catch (MissingResourceException mre) - { - logger.error("Could not find translation for: " + key); - } - JMenu menu = new JMenu(translation); - for (int i = 0; i < itemKeys.length; i++) - { - if (itemKeys[i].equals("-")) - { - menu.addSeparator(); - } else if (itemKeys[i].startsWith("@")) - { - String menuTitle = itemKeys[i].substring(1); - JMenu me = createMenu(jcpPanel, menuTitle); - menu.add(me); - } else if (itemKeys[i].endsWith("+")) { - JMenuItem mi; - if(itemKeys[i].endsWith("++")) - mi = createMenuItem(jcpPanel, - itemKeys[i].substring(0, itemKeys[i].length() - 2), - true, true - ); - else - mi = createMenuItem(jcpPanel, - itemKeys[i].substring(0, itemKeys[i].length() - 1), - true, false - ); - menu.add(mi); - } else - { - JMenuItem mi = createMenuItem(jcpPanel, itemKeys[i],false,false); - menu.add(mi); - } - } - return menu; - } - - - /** - * Gets the menuResourceString attribute of the JChemPaint object - * - *@param key Description of the Parameter - *@return The menuResourceString value - */ - public String getMenuResourceString(String key) - { - String str; - try - { - str = JCPPropertyHandler.getInstance().getGUIDefinition().getString(key); - } catch (MissingResourceException mre) - { - str = null; - } - return str; - } - - /** - * Return the JCPAction instance associated with this JCPPanel - * - *@return The jCPAction value - */ - public JCPAction getJCPAction() { - if (jcpaction == null) { - jcpaction = new JCPAction(); - } - return jcpaction; - } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-01-28 13:39:06
|
Revision: 13994 http://cdk.svn.sourceforge.net/cdk/?rev=13994&view=rev Author: shk3 Date: 2009-01-28 13:39:04 +0000 (Wed, 28 Jan 2009) Log Message: ----------- activated export Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java jchempaint/trunk/src/main/org/openscience/jchempaint/application/JChemPaint.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-01-28 11:47:40 UTC (rev 13993) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-01-28 13:39:04 UTC (rev 13994) @@ -51,9 +51,10 @@ entries.put("new", GT._("New")); entries.put("atomMenuTitle", GT._("Atom Popup Menu")); entries.put("open", GT._("Open")); - entries.put("saveAs", GT._("Save As")); + entries.put("saveAs", GT._("Save As...")); entries.put("view", GT._("View")); entries.put("print", GT._("Print...")); + entries.put("export", GT._("Export...")); entries.put("save", GT._("Save")); entries.put("edit", GT._("Edit")); entries.put("report", GT._("Report")); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/application/JChemPaint.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/application/JChemPaint.java 2009-01-28 11:47:40 UTC (rev 13993) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/application/JChemPaint.java 2009-01-28 13:39:04 UTC (rev 13994) @@ -35,6 +35,8 @@ import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import javax.swing.JFrame; import javax.swing.JOptionPane; @@ -236,16 +238,23 @@ } } String error = null; - ChemModel chemModel = null; - IChemFile chemFile = null; + List<IChemModel> chemModels=new ArrayList<IChemModel>(); if (cor.accepts(IChemFile.class)) { // try to read a ChemFile try { - chemFile = (IChemFile) cor + IChemFile chemFile = (IChemFile) cor .read((IChemObject) new org.openscience.cdk.ChemFile()); if (chemFile == null) { error = "The object chemFile was empty unexpectedly!"; } + for (int i = 0; i < chemFile.getChemSequenceCount(); i++) { + org.openscience.cdk.interfaces.IChemSequence chemSequence = chemFile.getChemSequence(i); + int chemModelCount = chemSequence.getChemModelCount(); + for (int j = 0; j < chemModelCount; j++) { + org.openscience.cdk.interfaces.IChemModel chemModel = chemSequence.getChemModel(j); + chemModels.add(chemModel); + } + } } catch (Exception exception) { error = "Error while reading file: " + exception.getMessage(); exception.printStackTrace(); @@ -255,13 +264,10 @@ JOptionPane.showMessageDialog(jcpPanel, error); return; } - if (cor.accepts(ChemModel.class)) { + if (cor.accepts(IChemModel.class)) { // try to read a ChemModel try { - chemModel = (ChemModel) cor.read((IChemObject) new ChemModel()); - if (chemModel == null) { - error = "The object chemModel was empty unexpectedly!"; - } + chemModels.add((IChemModel)cor.read((IChemObject) new ChemModel())); } catch (Exception exception) { error = "Error while reading file: " + exception.getMessage(); exception.printStackTrace(); @@ -270,18 +276,22 @@ if (error != null) { JOptionPane.showMessageDialog(jcpPanel, error); } - // check for bonds - if (ChemModelManipulator.getBondCount(chemModel) == 0) { - error = "Model does not have bonds. Cannot depict contents."; + for (IChemModel chemModel : chemModels) { + if(chemModel==null) + error = "Model is null. Cannot display anything."; + // check for bonds + if (ChemModelManipulator.getBondCount(chemModel) == 0) { + error = "Model does not have bonds. Cannot depict contents."; + } + // check for coordinates + JChemPaint.checkCoordinates(chemModel); + + chemModel.setID(inFile.getName()); + JChemPaintPanel p = showInstance(chemModel, inFile.getName()); + p.setCurrentWorkDirectory(inFile.getParentFile()); + p.setLastOpenedFile(inFile); + p.setIsAlreadyAFile(inFile); } - // check for coordinates - JChemPaint.checkCoordinates(chemModel); - - chemModel.setID(inFile.getName()); - JChemPaintPanel p = showInstance(chemModel, inFile.getName()); - p.setCurrentWorkDirectory(inFile.getParentFile()); - p.setLastOpenedFile(inFile); - p.setIsAlreadyAFile(inFile); } // TODO Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2009-01-28 11:47:40 UTC (rev 13993) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2009-01-28 13:39:04 UTC (rev 13994) @@ -51,11 +51,11 @@ ####################################################### # menubar definition # ####################################################### -popupmenubar=open save saveAs - view - print +popupmenubar=open save saveAs - view - export print menubar=file edit view report -file=new open save saveAs - print - close - exit +file=new open save saveAs - export print - close - exit edit=undo redo - selectAll copy paste cutSelected - @hydrogen \ adjustBondOrders resetBondOrders - @flip cleanup - \ @preferences Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-28 11:47:40 UTC (rev 13993) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-28 13:39:04 UTC (rev 13994) @@ -81,7 +81,6 @@ saveAction=org.openscience.jchempaint.action.SaveAction saveAsAction=org.openscience.jchempaint.action.SaveAsAction exportAction=org.openscience.jchempaint.action.ExportAction -compchemAction=org.openscience.jchempaint.action.ExportCompChemAction printAction=org.openscience.cdk.applications.jchempaint.action.PrintAction closeAction=org.openscience.jchempaint.action.CloseAction exitAction=org.openscience.jchempaint.action.ExitAction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-01-28 16:16:41
|
Revision: 13995 http://cdk.svn.sourceforge.net/cdk/?rev=13995&view=rev Author: shk3 Date: 2009-01-28 16:16:36 +0000 (Wed, 28 Jan 2009) Log Message: ----------- print works Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/PrintAction.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-01-28 13:39:04 UTC (rev 13994) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-01-28 16:16:36 UTC (rev 13995) @@ -137,11 +137,15 @@ .getDefaultConfiguration() .createCompatibleImage(bounds.width, bounds.height); Graphics2D g = (Graphics2D)image.getGraphics(); + takeSnapshot(g,bounds); + return image; + } + + public void takeSnapshot(Graphics2D g, Rectangle bounds){ super.paint(g); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); this.paintChemModel(g, bounds); - return image; } public void paintChemModel(Graphics2D g, Rectangle screenBounds) { Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/PrintAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/PrintAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/PrintAction.java 2009-01-28 16:16:36 UTC (rev 13995) @@ -0,0 +1,86 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.event.ActionEvent; +import java.awt.print.PageFormat; +import java.awt.print.Printable; +import java.awt.print.PrinterException; +import java.awt.print.PrinterJob; + +/** + * Opens a print dialog + * + * @cdk.module jchempaint + */ +public class PrintAction extends JCPAction implements Printable { + + private static final long serialVersionUID = 3944389510342678007L; + + /** + * Opens a dialog frame and manages the printing of a file. + * + * @param event Description of the Parameter + */ + public void actionPerformed(ActionEvent event) { + + PrinterJob printJob = PrinterJob.getPrinterJob(); + printJob.setPrintable(this); + if (printJob.printDialog()) { + try { + printJob.print(); + } catch (PrinterException pe) { + System.out.println("Error printing: " + pe); + } + } + } + + /** + * Prints the actual drawingPanel + * + * @param g Graphics object of drawinPanel + * @param pageFormat Description of the Parameter + * @param pageIndex Description of the Parameter + * @return Description of the Return Value + */ + public int print(Graphics g, PageFormat pageFormat, int pageIndex) { + if (pageIndex > 0) { + return (NO_SUCH_PAGE); + } + else { + Graphics2D g2d = (Graphics2D) g; + g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); + jcpPanel.getRenderPanel().takeSnapshot(g2d, jcpPanel.getRenderPanel().getBounds()); + return (PAGE_EXISTS); + } + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/PrintAction.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-28 13:39:04 UTC (rev 13994) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-28 16:16:36 UTC (rev 13995) @@ -81,7 +81,7 @@ saveAction=org.openscience.jchempaint.action.SaveAction saveAsAction=org.openscience.jchempaint.action.SaveAsAction exportAction=org.openscience.jchempaint.action.ExportAction -printAction=org.openscience.cdk.applications.jchempaint.action.PrintAction +printAction=org.openscience.jchempaint.action.PrintAction closeAction=org.openscience.jchempaint.action.CloseAction exitAction=org.openscience.jchempaint.action.ExitAction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-01-30 16:18:18
|
Revision: 14005 http://cdk.svn.sourceforge.net/cdk/?rev=14005&view=rev Author: shk3 Date: 2009-01-30 16:18:05 +0000 (Fri, 30 Jan 2009) Log Message: ----------- activated the square selection Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/small-bin/selectsquare.gif Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-01-30 16:17:10 UTC (rev 14004) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-01-30 16:18:05 UTC (rev 14005) @@ -201,6 +201,8 @@ entries.put("Cycle Symbol", GT._("Cycle Symbol")); entries.put("Delete", GT._("Delete")); entries.put("Benzene", GT._("Benzene")); + entries.put("Select in Free Form", GT._("Select in Free Form")); + entries.put("Select Square", GT._("Select Square")); } /** Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java 2009-01-30 16:17:10 UTC (rev 14004) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java 2009-01-30 16:18:05 UTC (rev 14005) @@ -45,6 +45,7 @@ import org.openscience.cdk.controller.MoveModule; import org.openscience.cdk.controller.RemoveModule; import org.openscience.cdk.controller.SelectModule; +import org.openscience.cdk.controller.SelectSquareModule; import org.openscience.cdk.event.ICDKChangeListener; import org.openscience.jchempaint.dialog.EnterElementSwingModule; import org.openscience.jchempaint.dialog.PeriodicTableDialog; @@ -89,6 +90,9 @@ } else if (type.equals("lasso")) { hub.setActiveDrawModule(new SelectModule(hub)); hub.getController2DModel().setDrawElement("C"); + } else if (type.equals("select")) { + hub.setActiveDrawModule(new SelectSquareModule(hub)); + hub.getController2DModel().setDrawElement("C"); } else if (type.equals("up_bond")) { hub.setActiveDrawModule(new AlterBondStereoModule( hub, AlterBondStereoModule.Direction.UP)); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-30 16:17:10 UTC (rev 14004) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-01-30 16:18:05 UTC (rev 14005) @@ -200,7 +200,7 @@ # Button actions bondAction=org.openscience.jchempaint.action.ChangeModeAction@bond lassoAction=org.openscience.jchempaint.action.ChangeModeAction@lasso -selectAction=org.openscience.cdk.applications.jchempaint.action.ChemAction@select +selectAction=org.openscience.jchempaint.action.ChangeModeAction@select eraserAction=org.openscience.jchempaint.action.ChangeModeAction@eraser moveAction=org.openscience.jchempaint.action.ChangeModeAction@move cyclesymbolAction=org.openscience.jchempaint.action.ChangeModeAction@cyclesymbol Added: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/small-bin/selectsquare.gif =================================================================== (Binary files differ) Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/small-bin/selectsquare.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-01-30 18:31:26
|
Revision: 14032 http://cdk.svn.sourceforge.net/cdk/?rev=14032&view=rev Author: shk3 Date: 2009-01-30 18:31:21 +0000 (Fri, 30 Jan 2009) Log Message: ----------- some i18n related stuff, better code for status bar Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-01-30 17:50:42 UTC (rev 14031) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-01-30 18:31:21 UTC (rev 14032) @@ -70,7 +70,7 @@ entries.put("hydrogen", GT._("Hydrogens...")); entries.put("adjustBondOrders", GT._("Adjust Bond Orders")); entries.put("resetBondOrders", GT._("Reset Bond Orders")); - entries.put("flip", GT._("Flip...")); + entries.put("flip", GT._("Flip")); entries.put("cleanup", GT._("Clean Up")); entries.put("preferences", GT._("Preferences")); entries.put("toolbar", GT._("Toolbar")); @@ -203,6 +203,7 @@ entries.put("Benzene", GT._("Benzene")); entries.put("Select in Free Form", GT._("Select in Free Form")); entries.put("Select Square", GT._("Select Square")); + entries.put("Move", GT._("Move")); } /** Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-01-30 17:50:42 UTC (rev 14031) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-01-30 18:31:21 UTC (rev 14032) @@ -52,6 +52,7 @@ import org.openscience.cdk.renderer.ISelection; import org.openscience.cdk.renderer.IntermediateRenderer; import org.openscience.cdk.renderer.visitor.SVGGenerator; +import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; import org.openscience.cdk.tools.manipulator.ChemModelManipulator; import org.openscience.cdk.tools.manipulator.MolecularFormulaManipulator; @@ -243,7 +244,7 @@ String status = ""; if (position == 0) { // depict editing mode - status = JCPMenuTextMaker.getInstance().getText(hub.getActiveDrawModule().getDrawModeString()); + status = JCPMenuTextMaker.getInstance().getText(JCPMenuTextMaker.getInstance().getText(hub.getActiveDrawModule().getDrawModeString())); } else if (position == 1) { // depict bruto formula IChemModel chemModel = hub.getIChemModel(); @@ -258,17 +259,15 @@ wholeModel.addIsotope(atom); if (atom.getHydrogenCount() != null) { implicitHs += atom.getHydrogenCount(); - } } + } + } } String formula = MolecularFormulaManipulator.getHTML( wholeModel, true, false); - status = "<html>" - + formula - + (implicitHs == 0 ? "" : " (of these " - + implicitHs + " Hs implicit)") + "</html>"; + status = makeStatusBarString(formula, implicitHs, MolecularFormulaManipulator.getNaturalExactMass(wholeModel)); } } else if (position == 2) { // depict brutto formula of the selected molecule or part of molecule @@ -276,15 +275,28 @@ if (selection != null) { IAtomContainer ac = selection.getConnectedAtomContainer(); if (ac != null) { + int implicitHs = 0; + for(IAtom atom : ac.atoms()){ + if (atom.getHydrogenCount() != null) { + implicitHs += atom.getHydrogenCount(); + } + } String formula = MolecularFormulaManipulator .getHTML(MolecularFormulaManipulator .getMolecularFormula(ac), true, false); - status = "<html>" + formula + "</html>"; + status = makeStatusBarString(formula, implicitHs, AtomContainerManipulator.getNaturalExactMass(ac)); } } } return status; } + + private String makeStatusBarString(String formula, int implicitHs, double mass){ + return "<html>" + + formula + + (implicitHs == 0 ? "" : " ("+GT._("of these")+ " " + + implicitHs + " "+GT._("Hs implicit")+")")+" (mass "+mass+")</html>"; + } public IntermediateRenderer getRenderer() { return renderer; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gil...@us...> - 2009-02-05 12:37:23
|
Revision: 14067 http://cdk.svn.sourceforge.net/cdk/?rev=14067&view=rev Author: gilleain Date: 2009-02-05 12:37:19 +0000 (Thu, 05 Feb 2009) Log Message: ----------- Changes necessary to sync jchempaint with the merge of the maclean-jchempaint and jchempaint-primary cdk branches that was made to align bioclipse-jchempaint with swing-jchempaint. Simple, really. Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/CleanupAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/ModifyDisplaySettingsAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/applet/JChemPaintAbstractApplet.java jchempaint/trunk/src/main/org/openscience/jchempaint/application/JChemPaint.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/ValidateFrame.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/RendererModelEditor.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-02-05 12:26:27 UTC (rev 14066) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-02-05 12:37:19 UTC (rev 14067) @@ -49,16 +49,18 @@ import org.openscience.cdk.interfaces.IChemModel; import org.openscience.cdk.interfaces.IMolecularFormula; import org.openscience.cdk.nonotify.NoNotificationChemObjectBuilder; -import org.openscience.cdk.renderer.ISelection; -import org.openscience.cdk.renderer.IntermediateRenderer; +import org.openscience.cdk.renderer.Renderer; +import org.openscience.cdk.renderer.font.AWTFontManager; +import org.openscience.cdk.renderer.selection.ISelection; import org.openscience.cdk.renderer.visitor.SVGGenerator; +import org.openscience.cdk.renderer.visitor.AWTDrawVisitor; import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; import org.openscience.cdk.tools.manipulator.ChemModelManipulator; import org.openscience.cdk.tools.manipulator.MolecularFormulaManipulator; public class RenderPanel extends JPanel implements IViewEventRelay { - private IntermediateRenderer renderer; + private Renderer renderer; private boolean isNewChemModel; @@ -80,7 +82,7 @@ } public void setFitToScreen(boolean fitToScreen) { - this.renderer.setFitToScreen(fitToScreen); + this.renderer.getRenderer2DModel().setFitToScreen(fitToScreen); } public IChemModel getChemModel() { @@ -97,12 +99,13 @@ private void setupMachinery(IChemModel chemModel, boolean fitToScreen) { // setup the Renderer and the controller 'model' - this.renderer = new IntermediateRenderer(); - this.renderer.setFitToScreen(fitToScreen); + this.renderer = new Renderer(new AWTFontManager()); + this.setFitToScreen(fitToScreen); this.controllerModel = new ControllerModel(); // connect the Renderer to the Hub - this.hub = new ControllerHub(controllerModel, renderer, chemModel, this); + this.hub = + new ControllerHub(controllerModel, renderer, chemModel, this); // connect mouse events from Panel to the Hub this.mouseEventRelay = new SwingMouseEventRelay(this.hub); @@ -120,7 +123,8 @@ IChemModel chemModel = this.hub.getIChemModel(); if (chemModel != null && chemModel.getMoleculeSet() != null) { SVGGenerator svgGenerator = new SVGGenerator(); - this.renderer.paint(svgGenerator, chemModel); + this.renderer.paintChemModel( + chemModel, svgGenerator, this.getBounds(), true); return svgGenerator.getResult(); } else { return "<svg></svg>"; @@ -148,11 +152,17 @@ RenderingHints.VALUE_ANTIALIAS_ON); this.paintChemModel(g, bounds); } + + private boolean isValidChemModel(IChemModel chemModel) { + return chemModel != null + && (chemModel.getMoleculeSet() != null + || chemModel.getReactionSet() != null); + } public void paintChemModel(Graphics2D g, Rectangle screenBounds) { IChemModel chemModel = this.hub.getIChemModel(); - if (chemModel != null && chemModel.getMoleculeSet() != null) { + if (isValidChemModel(chemModel)) { // determine the size the canvas needs to be in order to fit the model Rectangle diagramBounds = renderer.calculateScreenBounds(chemModel); @@ -180,10 +190,15 @@ || screenBounds.getMaxY() < diagramBounds.getMaxY(); } - private void paintChemModel(IChemModel chemModel, Graphics2D g, Rectangle bounds) { + private void paintChemModel( + IChemModel chemModel, Graphics2D g, Rectangle bounds) { // paint the chem model, and record that it is no longer new - renderer.paintChemModel(chemModel, g, bounds, isNewChemModel); + + renderer.paintChemModel(chemModel, + new AWTDrawVisitor(g), + bounds, + isNewChemModel); isNewChemModel = false; /* @@ -221,7 +236,7 @@ } private void paintFromCache(Graphics2D g) { - renderer.repaint(g); + renderer.repaint(new AWTDrawVisitor(g)); } public void updateView() { @@ -298,7 +313,7 @@ + implicitHs + " "+GT._("Hs implicit")+")")+" (mass "+mass+")</html>"; } - public IntermediateRenderer getRenderer() { + public Renderer getRenderer() { return renderer; } } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/CleanupAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CleanupAction.java 2009-02-05 12:26:27 UTC (rev 14066) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/CleanupAction.java 2009-02-05 12:37:19 UTC (rev 14067) @@ -46,7 +46,7 @@ import org.openscience.cdk.layout.StructureDiagramGenerator; import org.openscience.cdk.layout.TemplateHandler; import org.openscience.cdk.nonotify.NoNotificationChemObjectBuilder; -import org.openscience.cdk.renderer.LogicalSelection; +import org.openscience.cdk.renderer.selection.LogicalSelection; import org.openscience.cdk.renderer.selection.RectangleSelection; import org.openscience.cdk.renderer.selection.ShapeSelection; Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java 2009-02-05 12:26:27 UTC (rev 14066) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java 2009-02-05 12:37:19 UTC (rev 14067) @@ -62,9 +62,9 @@ import org.openscience.cdk.io.ReaderFactory; import org.openscience.cdk.layout.StructureDiagramGenerator; import org.openscience.cdk.layout.TemplateHandler; -import org.openscience.cdk.renderer.ISelection; -import org.openscience.cdk.renderer.LogicalSelection; import org.openscience.cdk.renderer.RendererModel; +import org.openscience.cdk.renderer.selection.ISelection; +import org.openscience.cdk.renderer.selection.LogicalSelection; import org.openscience.cdk.smiles.SmilesGenerator; import org.openscience.cdk.smiles.SmilesParser; import org.openscience.cdk.tools.manipulator.ChemFileManipulator; @@ -90,7 +90,8 @@ handleSystemClipboard(); logger.info(" type ", type); logger.debug(" source ", e.getSource()); - RendererModel renderModel = jcpPanel.get2DHub().getIJava2DRenderer().getRenderer2DModel(); + RendererModel renderModel = + jcpPanel.get2DHub().getRenderer().getRenderer2DModel(); if ("copy".equals(type)) { IAtomContainer copy = renderModel.getSelection().getConnectedAtomContainer(); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java 2009-02-05 12:26:27 UTC (rev 14066) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java 2009-02-05 12:37:19 UTC (rev 14067) @@ -44,9 +44,9 @@ import org.openscience.cdk.interfaces.IBond; import org.openscience.cdk.interfaces.IChemModel; import org.openscience.cdk.interfaces.IChemObject; -import org.openscience.cdk.renderer.ISelection; -import org.openscience.cdk.renderer.LogicalSelection; import org.openscience.cdk.renderer.RendererModel; +import org.openscience.cdk.renderer.selection.ISelection; +import org.openscience.cdk.renderer.selection.LogicalSelection; import org.openscience.cdk.renderer.selection.RectangleSelection; import org.openscience.cdk.renderer.selection.ShapeSelection; import org.openscience.cdk.tools.manipulator.ChemModelManipulator; @@ -73,7 +73,8 @@ logger.debug("Event source: ", event.getSource().getClass().getName()); logger.debug(" IChemObject: ", getSource(event)); - RendererModel renderModel = jcpPanel.get2DHub().getIJava2DRenderer().getRenderer2DModel(); + RendererModel renderModel + = jcpPanel.get2DHub().getRenderer().getRenderer2DModel(); IChemModel chemModel = jcpPanel.getChemModel(); if (type.equals("cut")) { org.openscience.cdk.interfaces.IAtom atomInRange = null; Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ModifyDisplaySettingsAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ModifyDisplaySettingsAction.java 2009-02-05 12:26:27 UTC (rev 14066) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ModifyDisplaySettingsAction.java 2009-02-05 12:37:19 UTC (rev 14067) @@ -46,7 +46,8 @@ { //TODO test if renderer uses settings logger.debug("Modify display settings in mode"); - RendererModel renderModel = jcpPanel.get2DHub().getIJava2DRenderer().getRenderer2DModel(); + RendererModel renderModel = + jcpPanel.get2DHub().getRenderer().getRenderer2DModel(); ModifyRenderOptionsDialog frame = new ModifyRenderOptionsDialog(jcpPanel,renderModel); frame.setVisible(true); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/applet/JChemPaintAbstractApplet.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/applet/JChemPaintAbstractApplet.java 2009-02-05 12:26:27 UTC (rev 14066) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/applet/JChemPaintAbstractApplet.java 2009-02-05 12:37:19 UTC (rev 14067) @@ -186,53 +186,73 @@ @Override public void start() { - RendererModel rendererModel = theJcpp.get2DHub().getIJava2DRenderer().getRenderer2DModel(); + RendererModel rendererModel = + theJcpp.get2DHub().getRenderer().getRenderer2DModel(); IChemModel chemModel = theJcpp.getChemModel(); - IControllerModel controllerModel = theJcpp.get2DHub().getController2DModel(); + IControllerModel controllerModel = + theJcpp.get2DHub().getController2DModel(); + //Parameter parsing goes here loadModelFromParam(); String atomNumbers=getParameter("atomNumbersVisible"); - if(atomNumbers!=null){ - if(atomNumbers.equals("true")) - theJcpp.get2DHub().getIJava2DRenderer().getRenderer2DModel().setDrawNumbers(true); - } + if (atomNumbers != null) { + if (atomNumbers.equals("true")) + rendererModel.setDrawNumbers(true); + } + String background = getParameter("background"); - if(background!=null){ - if(background.indexOf("#")==0) - theJcpp.get2DHub().getIJava2DRenderer().getRenderer2DModel().setBackColor(Color.decode(background)); - else - theJcpp.get2DHub().getIJava2DRenderer().getRenderer2DModel().setBackColor(new Color(Integer.parseInt(background))); + if (background != null) { + if (background.indexOf("#") == 0) + rendererModel.setBackColor(Color.decode(background)); + else + rendererModel.setBackColor(new Color(Integer + .parseInt(background))); + } + + if (getParameter("compact") != null + && getParameter("compact").equals("true")) { + rendererModel.setIsCompact(true); } - if(getParameter("compact")!=null && getParameter("compact").equals("true")){ - theJcpp.get2DHub().getIJava2DRenderer().getRenderer2DModel().setIsCompact(true); - } - if(getParameter("tooltips")!=null){ - StringTokenizer st=new StringTokenizer(getParameter("tooltips"),"|"); - IAtomContainer container = theJcpp.getChemModel().getBuilder().newAtomContainer(); - Iterator<IAtomContainer> containers = ChemModelManipulator.getAllAtomContainers(theJcpp.getChemModel()).iterator(); + + if (getParameter("tooltips") != null) { + StringTokenizer st = + new StringTokenizer(getParameter("tooltips"), "|"); + IAtomContainer container = + theJcpp.getChemModel().getBuilder().newAtomContainer(); + Iterator<IAtomContainer> containers = + ChemModelManipulator.getAllAtomContainers(chemModel).iterator(); + while (containers.hasNext()) { container.add(containers.next()); } - while(st.hasMoreTokens()){ - IAtom atom = container.getAtom(Integer.parseInt(st.nextToken())-1); - theJcpp.get2DHub().getIJava2DRenderer().getRenderer2DModel().getToolTipTextMap().put(atom,st.nextToken()); + + while (st.hasMoreTokens()) { + IAtom atom = + container.getAtom(Integer.parseInt(st.nextToken()) - 1); + rendererModel.getToolTipTextMap().put(atom, st.nextToken()); } - theJcpp.get2DHub().getIJava2DRenderer().getRenderer2DModel().setShowTooltip(true); + rendererModel.setShowTooltip(true); } - if(getParameter("impliciths")!=null && getParameter("impliciths").equals("false")){ + + if (getParameter("impliciths") != null + && getParameter("impliciths").equals("false")) { controllerModel.setAutoUpdateImplicitHydrogens(false); rendererModel.setShowImplicitHydrogens(false); rendererModel.setShowEndCarbons(false); - }else{ + } else { controllerModel.setAutoUpdateImplicitHydrogens(true); rendererModel.setShowImplicitHydrogens(true); - rendererModel.setShowEndCarbons(true); - if(chemModel!=null){ - List<IAtomContainer> atomContainers = ChemModelManipulator.getAllAtomContainers(chemModel); + rendererModel.setShowEndCarbons(true); + + if (chemModel != null) { + List<IAtomContainer> atomContainers = + ChemModelManipulator.getAllAtomContainers(chemModel); for(int i=0;i<atomContainers.size();i++) { try { - CDKHydrogenAdder.getInstance(atomContainers.get(i).getBuilder()).addImplicitHydrogens(atomContainers.get(i)); + CDKHydrogenAdder.getInstance( + atomContainers.get(i).getBuilder()) + .addImplicitHydrogens(atomContainers.get(i)); } catch (CDKException e) { //do nothing } @@ -386,10 +406,12 @@ * @param atom The atom number (starting with 0) */ public void selectAtom(int atom){ - RendererModel rendererModel = theJcpp.get2DHub().getIJava2DRenderer().getRenderer2DModel(); + RendererModel rendererModel = + theJcpp.get2DHub().getRenderer().getRenderer2DModel(); IChemModel chemModel = theJcpp.getChemModel(); rendererModel.setExternalHighlightColor(Color.RED); - IAtomContainer ac=chemModel.getMoleculeSet().getBuilder().newAtomContainer(); + IAtomContainer ac = + chemModel.getMoleculeSet().getBuilder().newAtomContainer(); ac.addAtom(chemModel.getMoleculeSet().getMolecule(0).getAtom(atom)); rendererModel.setExternalSelectedPart(ac); getTheJcpp().repaint(); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/application/JChemPaint.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/application/JChemPaint.java 2009-02-05 12:26:27 UTC (rev 14066) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/application/JChemPaint.java 2009-02-05 12:37:19 UTC (rev 14067) @@ -35,8 +35,6 @@ import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import javax.swing.JFrame; import javax.swing.JOptionPane; @@ -166,7 +164,7 @@ } public static void showInstance(File inFile, String type, JChemPaintPanel jcpPanel){ - if (!inFile.exists()) { + if (!inFile.exists()) { JOptionPane.showMessageDialog(jcpPanel, "File " + inFile.getPath() + " does not exist."); return; @@ -238,23 +236,16 @@ } } String error = null; - List<IChemModel> chemModels=new ArrayList<IChemModel>(); + ChemModel chemModel = null; + IChemFile chemFile = null; if (cor.accepts(IChemFile.class)) { // try to read a ChemFile try { - IChemFile chemFile = (IChemFile) cor + chemFile = (IChemFile) cor .read((IChemObject) new org.openscience.cdk.ChemFile()); if (chemFile == null) { error = "The object chemFile was empty unexpectedly!"; } - for (int i = 0; i < chemFile.getChemSequenceCount(); i++) { - org.openscience.cdk.interfaces.IChemSequence chemSequence = chemFile.getChemSequence(i); - int chemModelCount = chemSequence.getChemModelCount(); - for (int j = 0; j < chemModelCount; j++) { - org.openscience.cdk.interfaces.IChemModel chemModel = chemSequence.getChemModel(j); - chemModels.add(chemModel); - } - } } catch (Exception exception) { error = "Error while reading file: " + exception.getMessage(); exception.printStackTrace(); @@ -264,10 +255,13 @@ JOptionPane.showMessageDialog(jcpPanel, error); return; } - if (cor.accepts(IChemModel.class)) { + if (cor.accepts(ChemModel.class)) { // try to read a ChemModel try { - chemModels.add((IChemModel)cor.read((IChemObject) new ChemModel())); + chemModel = (ChemModel) cor.read((IChemObject) new ChemModel()); + if (chemModel == null) { + error = "The object chemModel was empty unexpectedly!"; + } } catch (Exception exception) { error = "Error while reading file: " + exception.getMessage(); exception.printStackTrace(); @@ -276,22 +270,23 @@ if (error != null) { JOptionPane.showMessageDialog(jcpPanel, error); } - for (IChemModel chemModel : chemModels) { - if(chemModel==null) - error = "Model is null. Cannot display anything."; - // check for bonds - if (ChemModelManipulator.getBondCount(chemModel) == 0) { - error = "Model does not have bonds. Cannot depict contents."; - } - // check for coordinates - JChemPaint.checkCoordinates(chemModel); - - chemModel.setID(inFile.getName()); - JChemPaintPanel p = showInstance(chemModel, inFile.getName()); - p.setCurrentWorkDirectory(inFile.getParentFile()); - p.setLastOpenedFile(inFile); - p.setIsAlreadyAFile(inFile); + + if (chemModel == null && chemFile != null) { + chemModel = (ChemModel) chemFile.getChemSequence(0).getChemModel(0); } + + + // check for bonds + if (ChemModelManipulator.getBondCount(chemModel) == 0) { + error = "Model does not have bonds. Cannot depict contents."; + } + // check for coordinates + JChemPaint.checkCoordinates(chemModel); + + JChemPaintPanel p = showInstance(chemModel, inFile.getName()); + p.setCurrentWorkDirectory(inFile.getParentFile()); + p.setLastOpenedFile(inFile); + p.setIsAlreadyAFile(inFile); } // TODO Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/ValidateFrame.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/ValidateFrame.java 2009-02-05 12:26:27 UTC (rev 14066) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/ValidateFrame.java 2009-02-05 12:37:19 UTC (rev 14067) @@ -77,7 +77,7 @@ public ValidateFrame(JChemPaintPanel jcpp) { super("Validation Results"); - rendererModel = jcpp.get2DHub().getIJava2DRenderer().getRenderer2DModel(); + rendererModel = jcpp.get2DHub().getRenderer().getRenderer2DModel(); getContentPane().setLayout(new BorderLayout()); JPanel southPanel = new JPanel(); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/RendererModelEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/RendererModelEditor.java 2009-02-05 12:26:27 UTC (rev 14066) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/editor/RendererModelEditor.java 2009-02-05 12:37:19 UTC (rev 14067) @@ -65,7 +65,7 @@ private JCheckBox useAA; private JLabel fontName; private JButton chooseFontButton; - private Font currentFont; + private String currentFontName; private JLabel color; private JButton chooseColorButton; private Color currentColor; @@ -83,7 +83,7 @@ } private void constructPanel() { - currentFont = null; + currentFontName = ""; drawNumbers = new JCheckBox(); addField(GT._("Draw atom numbers"), drawNumbers); showAtomAtomMapping = new JCheckBox(); @@ -133,9 +133,9 @@ useAA.setSelected(model.getUseAntiAliasing()); showToolTip.setSelected(model.getShowTooltip()); showReactionBoxes.setSelected(model.getShowReactionBoxes()); - currentFont = model.getFont(); - if (currentFont != null) { - fontName.setText(currentFont.getFontName()); + currentFontName = model.getFontName(); + if (!currentFontName.equals("")) { + fontName.setText(currentFontName); } currentColor = model.getBackColor(); if (currentColor != null) { @@ -156,7 +156,7 @@ model.setUseAntiAliasing(useAA.isSelected()); model.setShowTooltip(showToolTip.isSelected()); model.setShowReactionBoxes(showReactionBoxes.isSelected()); - model.setFont(currentFont); + model.setFontName(currentFontName); model.setBackColor(currentColor); } @@ -165,10 +165,14 @@ */ public void actionPerformed(ActionEvent e) { if ("chooseFont".equals(e.getActionCommand())) { - Font newFont = JFontChooser.showDialog(this.frame, GT._("Choose a Font"), GT._("Carbon Dioxide"), currentFont); + Font newFont = JFontChooser.showDialog( + this.frame, + GT._("Choose a Font"), + GT._("Carbon Dioxide"), + new Font(currentFontName, Font.PLAIN, 12)); if (newFont != null) { - currentFont = newFont; - fontName.setText(currentFont.getFontName()); + currentFontName = newFont.getFontName(); + fontName.setText(currentFontName); } } if ("chooseColor".equals(e.getActionCommand())) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-02-05 16:04:04
|
Revision: 14072 http://cdk.svn.sourceforge.net/cdk/?rev=14072&view=rev Author: shk3 Date: 2009-02-05 16:04:00 +0000 (Thu, 05 Feb 2009) Log Message: ----------- added zoomfactor to status bar Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPStatusBar.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JCPStatusBar.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPStatusBar.java 2009-02-05 15:20:49 UTC (rev 14071) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JCPStatusBar.java 2009-02-05 16:04:00 UTC (rev 14072) @@ -43,7 +43,7 @@ { private static final long serialVersionUID = 7075275608248231843L; - JLabel[] status = new JLabel[3]; + JLabel[] status = new JLabel[4]; /** @@ -53,9 +53,9 @@ { super(); - setLayout(new GridLayout(1, 3)); + setLayout(new GridLayout(1, 4)); setPreferredSize(new Dimension(660, 30)); - for (int i = 0; i <= 2; i++) + for (int i = 0; i <= 3; i++) { status[i] = new JLabel(); status[i].setPreferredSize(new Dimension(220, 30)); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-02-05 15:20:49 UTC (rev 14071) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-02-05 16:04:00 UTC (rev 14072) @@ -495,7 +495,7 @@ public void updateStatusBar(){ if(showStatusBar){ if (this.getChemModel() != null) { - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 4; i++) { String status = renderPanel.getStatus(i); statusBar.setStatus(i + 1, status); } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-02-05 15:20:49 UTC (rev 14071) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-02-05 16:04:00 UTC (rev 14072) @@ -36,6 +36,7 @@ import java.awt.Image; import java.awt.Rectangle; import java.awt.RenderingHints; +import java.text.NumberFormat; import java.util.Iterator; import javax.swing.JPanel; @@ -52,8 +53,8 @@ import org.openscience.cdk.renderer.Renderer; import org.openscience.cdk.renderer.font.AWTFontManager; import org.openscience.cdk.renderer.selection.ISelection; +import org.openscience.cdk.renderer.visitor.AWTDrawVisitor; import org.openscience.cdk.renderer.visitor.SVGGenerator; -import org.openscience.cdk.renderer.visitor.AWTDrawVisitor; import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; import org.openscience.cdk.tools.manipulator.ChemModelManipulator; import org.openscience.cdk.tools.manipulator.MolecularFormulaManipulator; @@ -302,6 +303,8 @@ status = makeStatusBarString(formula, implicitHs, AtomContainerManipulator.getNaturalExactMass(ac)); } } + } else if (position == 3) { + status= GT._("Zoomfactor")+": "+NumberFormat.getPercentInstance().format(renderer.getZoom()); } return status; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-02-05 16:26:27
|
Revision: 14073 http://cdk.svn.sourceforge.net/cdk/?rev=14073&view=rev Author: shk3 Date: 2009-02-05 16:26:24 +0000 (Thu, 05 Feb 2009) Log Message: ----------- activated zoom Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ZoomAction.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-02-05 16:04:00 UTC (rev 14072) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/RenderPanel.java 2009-02-05 16:26:24 UTC (rev 14073) @@ -313,7 +313,7 @@ return "<html>" + formula + (implicitHs == 0 ? "" : " ("+GT._("of these")+ " " - + implicitHs + " "+GT._("Hs implicit")+")")+" (mass "+mass+")</html>"; + + implicitHs + " "+GT._("Hs implicit")+")")+" ("+GT._("mass")+" "+mass+")</html>"; } public Renderer getRenderer() { Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ZoomAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ZoomAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ZoomAction.java 2009-02-05 16:26:24 UTC (rev 14073) @@ -0,0 +1,67 @@ +/* + * $RCSfile$ + * $Author: shk3 $ + * $Date: 2008-10-02 16:45:12 +0100 (Thu, 02 Oct 2008) $ + * $Revision: 12535 $ + * + * Copyright (C) 2003-2007 The JChemPaint project + * + * Contact: jch...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.Point; +import java.awt.event.ActionEvent; + +import org.openscience.cdk.renderer.RendererModel; + + +/** + * @cdk.module jchempaint + * @author steinbeck + */ +public class ZoomAction extends JCPAction +{ + + private static final long serialVersionUID = -2459332630141921895L; + + public void actionPerformed(ActionEvent e) + { + logger.debug("Zooming in/out in mode: ", type); + if (type.equals("in") && jcpPanel.getRenderPanel().getRenderer().getZoom()<10) + { + jcpPanel.getRenderPanel().getRenderer().setZoom(jcpPanel.getRenderPanel().getRenderer().getZoom() * 1.5); + } else if (type.equals("out")&& jcpPanel.getRenderPanel().getRenderer().getZoom()>.1) + { + jcpPanel.getRenderPanel().getRenderer().setZoom(jcpPanel.getRenderPanel().getRenderer().getZoom() / 1.5); + } else if (type.equals("original")) + { + jcpPanel.getRenderPanel().getRenderer().setZoom(1); + } else + { + logger.error("Unkown zoom command: " + type); + } + jcpPanel.get2DHub().updateView(); + jcpPanel.updateStatusBar(); + } + +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ZoomAction.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-02-05 16:04:00 UTC (rev 14072) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-02-05 16:26:24 UTC (rev 14073) @@ -159,8 +159,8 @@ statusbarAction=org.openscience.jchempaint.action.StatusBarAction menubarAction=org.openscience.jchempaint.action.MenuBarAction insertstructureAction=org.openscience.jchempaint.action.InsertStructureAction -zoominAction=org.openscience.cdk.applications.jchempaint.action.ZoomAction@in -zoomoutAction=org.openscience.cdk.applications.jchempaint.action.ZoomAction@out +zoominAction=org.openscience.jchempaint.action.ZoomAction@in +zoomoutAction=org.openscience.jchempaint.action.ZoomAction@out zoomoriginalAction=org.openscience.cdk.applications.jchempaint.action.ZoomAction@original renderOptionsAction=org.openscience.jchempaint.action.ModifyDisplaySettingsAction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-02-06 10:43:04
|
Revision: 14078 http://cdk.svn.sourceforge.net/cdk/?rev=14078&view=rev Author: shk3 Date: 2009-02-06 10:42:56 +0000 (Fri, 06 Feb 2009) Log Message: ----------- cleaned up the menu classes a lot (code duplications etc.) Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java 2009-02-06 09:57:15 UTC (rev 14077) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java 2009-02-06 10:42:56 UTC (rev 14078) @@ -29,6 +29,7 @@ package org.openscience.jchempaint; import javax.swing.Box; +import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JMenuBar; @@ -56,30 +57,18 @@ /** - * Constructor for the JChemPaintMenuBar object - * - * @param jcpPanel Description of the Parameter - * @param guiString Description of the Parameter - * @param menuDefinition Description of the Parameter - */ - public JChemPaintMenuBar(JChemPaintPanel jcpPanel, String menuDefinition, String guiString) { - this.guiString = guiString; - createMenubar(jcpPanel, menuDefinition); - } - - - /** - * Creates a JMenuBar with all the menues that are specified in the properties + * Constructor for the JChemPaintMenuBar object. Creates a JMenuBar with all the menues that are specified in the properties * file. <p> * * The menu items in the bar are defined by the property 'menubar' in * org.openscience.cdk.applications.jchempaint.resources.JChemPaint.properties. * * @param jcpPanel Description of the Parameter + * @param guiString Description of the Parameter * @param menuDefinition Description of the Parameter */ - protected void createMenubar(JChemPaintPanel jcpPanel, - String menuDefinition) { + public JChemPaintMenuBar(JChemPaintPanel jcpPanel, String menuDefinition, String guiString) { + this.guiString = guiString; addNormalMenuBar(jcpPanel, menuDefinition); this.add(Box.createHorizontalGlue()); this.add(menuHelper.createMenu(jcpPanel, "help", false, guiString)); @@ -102,7 +91,7 @@ } String[] menuKeys = StringHelper.tokenize(definition); for (int i = 0; i < menuKeys.length; i++) { - JMenu m = menuHelper.createMenu(jcpPanel, menuKeys[i], false, guiString); + JComponent m = menuHelper.createMenu(jcpPanel, menuKeys[i], false, guiString); if (m != null) { this.add(m); } @@ -121,7 +110,7 @@ String[] menuKeys = StringHelper.tokenize(definition); JMenu superMenu = new JMenu("JChemPaint"); for (int i = 0; i < menuKeys.length; i++) { - JMenu m = menuHelper.createMenu(jcpPanel, menuKeys[i], false,guiString); + JComponent m = menuHelper.createMenu(jcpPanel, menuKeys[i], false,guiString); if (m != null) { superMenu.add(m); } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java 2009-02-06 09:57:15 UTC (rev 14077) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java 2009-02-06 10:42:56 UTC (rev 14078) @@ -8,6 +8,7 @@ import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; import javax.swing.KeyStroke; import org.openscience.jchempaint.action.JCPAction; @@ -25,9 +26,9 @@ /** - * Return the JCPAction instance associated with this JCPPanel + * Return the JCPAction instance associated with this JCPPanel. * - *@return The jCPAction value + * @return The jCPAction value */ public JCPAction getJCPAction() { if (jcpaction == null) { @@ -37,10 +38,11 @@ } /** - * Gets the menuResourceString attribute of the JChemPaint object + * Returns the definition of the subitems of a menu as in the properties files. * - * @param key Description of the Parameter - * @return The menuResourceString value + * @param key The key for which subitems to return + * @param guiString The string identifying the gui to build (i. e. the properties file to use) + * @return The resource string */ public String getMenuResourceString(String key, String guiString) { String str; @@ -58,36 +60,43 @@ * * @param key The String used to identify the Menu * @param jcpPanel Description of the Parameter + * @param isPopup Tells if this menu will be a popup one or not + * @param guiString The string identifying the gui to build (i. e. the properties file to use) * @return The created JMenu */ - protected JMenu createMenu(JChemPaintPanel jcpPanel, String key, boolean isPopup, String guiString) { + protected JComponent createMenu(JChemPaintPanel jcpPanel, String key, boolean isPopup, String guiString) { logger.debug("Creating menu: ", key); + JMenu menu = new JMenu(JCPMenuTextMaker.getInstance().getText(key)); + return createMenu(jcpPanel, key, isPopup, guiString, menu); + } + + + /** + * Creates a JMenu given by a String with all the MenuItems specified in the + * properties file. + * + * @param key The String used to identify the Menu + * @param jcpPanel Description of the Parameter + * @param isPopup Tells if this menu will be a popup one or not + * @param guiString The string identifying the gui to build (i. e. the properties file to use) + * @param menu The menu to add the new menu to (must either be JMenu or JPopupMenu) + * @return The created JMenu + */ + protected JComponent createMenu(JChemPaintPanel jcpPanel, String key, boolean isPopup, String guiString, JComponent menu) { String[] itemKeys = StringHelper.tokenize(getMenuResourceString(key, guiString)); - JMenu menu = new JMenu(JCPMenuTextMaker.getInstance().getText(key)); for (int i = 0; i < itemKeys.length; i++) { if (itemKeys[i].equals("-")) { - menu.addSeparator(); + if(menu instanceof JMenu) + ((JMenu)menu).addSeparator(); + else + ((JPopupMenu)menu).addSeparator(); } else if (itemKeys[i].startsWith("@")) { - JMenu me = createMenu(jcpPanel, itemKeys[i].substring(1), isPopup, guiString); + JComponent me = createMenu(jcpPanel, itemKeys[i].substring(1), isPopup, guiString); menu.add(me); } - else if (itemKeys[i].endsWith("+")) { - JMenuItem mi; - if(itemKeys[i].endsWith("++")) - mi = createMenuItem(jcpPanel, - itemKeys[i].substring(0, itemKeys[i].length() - 2), - true, true, isPopup - ); - else - mi = createMenuItem(jcpPanel, - itemKeys[i].substring(0, itemKeys[i].length() - 1), - true, false, isPopup - ); - menu.add(mi); - } else { - JMenuItem mi = createMenuItem(jcpPanel, itemKeys[i], false, false, isPopup); + JMenuItem mi = createMenuItem(jcpPanel, itemKeys[i], isPopup); menu.add(mi); } } @@ -96,17 +105,26 @@ /** - * Craetes a JMenuItem given by a String and adds the right ActionListener to + * Creates a JMenuItem given by a String and adds the right ActionListener to * it. * - * @param cmd String The Strin to identify the MenuItem + * @param cmd String The String to identify the MenuItem * @param jcpPanel Description of the Parameter - * @param isCheckBox Description of the Parameter - * @param isChecked Description of the Parameter + * @param isPopup Tells if this menu will be a popup one or not * @return JMenuItem The created JMenuItem */ - protected JMenuItem createMenuItem(JChemPaintPanel jcpPanel, String cmd, boolean isCheckBox, boolean isChecked, boolean isPopupMenu) { + protected JMenuItem createMenuItem(JChemPaintPanel jcpPanel, String cmd, boolean isPopupMenu) { logger.debug("Creating menu item: ", cmd); + boolean isCheckBox=false; + if (cmd.endsWith("+")){ + isCheckBox=true; + cmd=cmd.substring(0, cmd.length() - 1); + } + boolean isChecked=false; + if (cmd.endsWith("+")){ + isChecked=true; + cmd=cmd.substring(0, cmd.length() - 1); + } String translation = "***" + cmd + "***"; try { translation = JCPMenuTextMaker.getInstance().getText(cmd); @@ -145,11 +163,11 @@ } /** - * Adds ShortCuts to the JChemPaintMenuBar object + * Adds ShortCuts to the JChemPaintMenuBar object. * - * @param cmd String The Strin to identify the MenuItem - * @param mi the regarding MenuItem - * @param jcp The feature to be added to the ShortCuts attribute + * @param cmd String The Strin to identify the MenuItem. + * @param mi the regarding MenuItem. + * @param jcp The JChemPaintPanel this menu is used for. */ private void addShortCuts(String cmd, JMenuItem mi, JChemPaintPanel jcp) { Properties shortCutProps = JCPPropertyHandler.getInstance().getJCPShort_Cuts(); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java 2009-02-06 09:57:15 UTC (rev 14077) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPopupMenu.java 2009-02-06 10:42:56 UTC (rev 14078) @@ -20,9 +20,7 @@ * 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 Gener * @cdk.module jchempaint - * @author steinbeck -al Public License for more details. + * 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 @@ -30,7 +28,6 @@ */ package org.openscience.jchempaint; -import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; @@ -46,7 +43,6 @@ private static final long serialVersionUID = -1172105004348414589L; private IChemObject source; private JChemPaintMenuHelper menuHelper=new JChemPaintMenuHelper(); - private String guiString = "stable"; public void setSource(IChemObject object) { this.source = object; @@ -57,45 +53,21 @@ } /** - * Constructor for the JChemPaintPopupMenu object + * Constructor for the JChemPaintPopupMenu object. * - *@param jcpPanel Description of the Parameter - *@param type Description of the Parameter + * @param jcpPanel The JChemPaintPanel this menu is used for. + * @param type The String used to identify the Menu + * @param guiString The string identifying the gui to build (i. e. the properties file to use) */ JChemPaintPopupMenu(JChemPaintPanel jcpPanel, String type, String guiString) { - this.guiString = guiString; - createPopupMenu(jcpPanel, type); - } - - protected void createPopupMenu(JChemPaintPanel jcpPanel, String type) - { - String[] menuKeys = StringHelper.tokenize(menuHelper.getMenuResourceString(type + "popup", guiString)); String menuTitle = JCPMenuTextMaker.getInstance().getText(type + "MenuTitle"); JMenuItem titleMenuItem = new JMenuItem(menuTitle); titleMenuItem.setEnabled(false); titleMenuItem.setArmed(false); this.add(titleMenuItem); this.addSeparator(); - for (int i = 0; i < menuKeys.length; i++) - { - String menuKey = menuKeys[i]; - if (menuKey.equals("-")) - { - this.addSeparator(); - } else if (menuKey.startsWith("@")) - { - JMenu me = menuHelper.createMenu(jcpPanel, menuKey.substring(1),true, guiString); - this.add(me); - } else - { - JMenuItem item = menuHelper.createMenuItem(jcpPanel, menuKey,false,false,true); - if (item != null) - { - this.add(item); - } - } - } + menuHelper.createMenu(jcpPanel, type + "popup", true, guiString, this); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-02-06 13:52:27
|
Revision: 14094 http://cdk.svn.sourceforge.net/cdk/?rev=14094&view=rev Author: shk3 Date: 2009-02-06 13:52:25 +0000 (Fri, 06 Feb 2009) Log Message: ----------- selection change events are listened to for updating status bar (very cool feature) Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java 2009-02-06 13:51:49 UTC (rev 14093) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuBar.java 2009-02-06 13:52:25 UTC (rev 14094) @@ -34,7 +34,7 @@ import javax.swing.JMenuBar; /** - * JChemPaint menu bar + * An extension of JMenuBar for JCP purposes * */ public class JChemPaintMenuBar extends JMenuBar { Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java 2009-02-06 13:51:49 UTC (rev 14093) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java 2009-02-06 13:52:25 UTC (rev 14094) @@ -14,12 +14,19 @@ import org.openscience.jchempaint.action.JCPAction; import org.openscience.cdk.tools.LoggingTool; +/** + * A class containing various helper methods used in JChemPaintMenuBar and JChemPaintPopupMenu. + * + */ public class JChemPaintMenuHelper { private LoggingTool logger; private JCPAction jcpaction; + /** + * Constructor for JChemPaintMenuHelper + */ public JChemPaintMenuHelper(){ this.logger=new LoggingTool(); } @@ -30,7 +37,7 @@ * * @return The jCPAction value */ - public JCPAction getJCPAction() { + private JCPAction getJCPAction() { if (jcpaction == null) { jcpaction = new JCPAction(); } @@ -44,7 +51,7 @@ * @param guiString The string identifying the gui to build (i. e. the properties file to use) * @return The resource string */ - public String getMenuResourceString(String key, String guiString) { + protected String getMenuResourceString(String key, String guiString) { String str; try { str = JCPPropertyHandler.getInstance().getGUIDefinition(guiString).getString(key); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-02-06 13:51:49 UTC (rev 14093) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-02-06 13:52:25 UTC (rev 14094) @@ -533,8 +533,7 @@ updateStatusBar(); } public void selectionChanged() { - // TODO Auto-generated method stub - + updateStatusBar(); } public void structureChanged() { setModified(true); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java 2009-02-06 13:51:49 UTC (rev 14093) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java 2009-02-06 13:52:25 UTC (rev 14094) @@ -88,10 +88,10 @@ } else if (type.equals("enterelement")) { hub.setActiveDrawModule(new EnterElementSwingModule(hub)); } else if (type.equals("lasso")) { - hub.setActiveDrawModule(new SelectModule(hub)); + hub.setActiveDrawModule(new SelectModule(hub,jcpPanel)); hub.getController2DModel().setDrawElement("C"); } else if (type.equals("select")) { - hub.setActiveDrawModule(new SelectSquareModule(hub)); + hub.setActiveDrawModule(new SelectSquareModule(hub,jcpPanel)); hub.getController2DModel().setDrawElement("C"); } else if (type.equals("up_bond")) { hub.setActiveDrawModule(new AlterBondStereoModule( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-02-11 11:24:12
|
Revision: 14165 http://cdk.svn.sourceforge.net/cdk/?rev=14165&view=rev Author: shk3 Date: 2009-02-11 11:24:07 +0000 (Wed, 11 Feb 2009) Log Message: ----------- added the "make reactant/product..." actions. these need fixing once several fragments can be created Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Added Paths: ----------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CreateReactionAction.java Added: jchempaint/trunk/src/main/org/openscience/jchempaint/action/CreateReactionAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CreateReactionAction.java (rev 0) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/CreateReactionAction.java 2009-02-11 11:24:07 UTC (rev 14165) @@ -0,0 +1,226 @@ +/* + * $RCSfile$ + * $Author: egonw $ + * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ + * $Revision: 7634 $ + * + * Copyright (C) 1997-2008 Christoph Steinbeck, Stefan Kuhn + * + * Contact: cdk...@li... + * + * 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. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.jchempaint.action; + +import java.awt.event.ActionEvent; + +import javax.swing.JOptionPane; + +import org.openscience.cdk.interfaces.IAtom; +import org.openscience.cdk.interfaces.IAtomContainer; +import org.openscience.cdk.interfaces.IChemModel; +import org.openscience.cdk.interfaces.IChemObject; +import org.openscience.cdk.interfaces.IReaction; +import org.openscience.cdk.interfaces.IReactionSet; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; +import org.openscience.jchempaint.GT; + + +/** + * Creates a reaction object + * + */ +public class CreateReactionAction extends JCPAction +{ + + private static final long serialVersionUID = -7625810885316702776L; + + public void actionPerformed(ActionEvent event) + { + IChemObject object = getSource(event); + + logger.debug("CreateReaction action"); + IChemModel model = jcpPanel.getChemModel(); + IReactionSet reactionSet = model.getReactionSet(); + if (reactionSet == null) + { + reactionSet = model.getBuilder().newReactionSet(); + } + IAtomContainer container = null; + if (object instanceof IAtom) + { + container = ChemModelManipulator.getRelevantAtomContainer(model, (IAtom) object); + } else + { + logger.error("Cannot add to reaction object of type: " + object.getClass().getName()); + } + if (container == null) + { + logger.error("Cannot find container to add object to!"); + } else + { + IAtomContainer newContainer; + try { + newContainer = (IAtomContainer) container.clone(); + } catch (CloneNotSupportedException e) { + logger.error("Could not clone IAtomContainer: ", e.getMessage()); + logger.debug(e); + return; + } + + logger.debug("type: ", type); + if ("addReactantToNew".equals(type)) + { + IReaction reaction = model.getBuilder().newReaction(); + reaction.setID("reaction-" + System.currentTimeMillis()); + reaction.addReactant(model.getBuilder().newMolecule(newContainer)); + reactionSet.addReaction(reaction); + } else if ("addReactantToExisting".equals(type)) + { + if (reactionSet.getReactionCount() == 0) + { + logger.warn("Cannot add to reaction if no one exists"); + JOptionPane.showMessageDialog(jcpPanel, GT._("No reaction existing. Cannot add therefore to something!"), GT._("No existing reactions"), JOptionPane.WARNING_MESSAGE); + return; + } else + { +// XXX needs fixing + Object[] ids = getReactionIDs(reactionSet); + + String s = (String) JOptionPane.showInputDialog( + //jcpPanel.getFrame(), + null, + "Reaction Chooser", + "Choose reaction to add reaction to", + JOptionPane.PLAIN_MESSAGE, + null, + ids, + ids[0] + ); + //String s2 = ""; + + if ((s != null) && (s.length() > 0)) + { + String selectedReactionID = s; + IReaction reaction = getReaction(reactionSet, selectedReactionID); + reaction.addReactant(model.getBuilder().newMolecule(newContainer)); + } else + { + logger.error("No reaction selected"); + } + } + } else if ("addProductToNew".equals(type)) + { + IReaction reaction = model.getBuilder().newReaction(); + reaction.setID("reaction-" + System.currentTimeMillis()); + reaction.addProduct(model.getBuilder().newMolecule(newContainer)); + reactionSet.addReaction(reaction); + } else if ("addProductToExisting".equals(type)) + { + if (reactionSet.getReactionCount() == 0) + { + logger.warn("Cannot add to reaction if no one exists"); + JOptionPane.showMessageDialog(jcpPanel, GT._("No reaction existing. Cannot add therefore to something!"), GT._("No existing reactions"), JOptionPane.WARNING_MESSAGE); + return; + } else + { + //XXX needs fixing + + Object[] ids = getReactionIDs(reactionSet); + String s = (String) JOptionPane.showInputDialog( + //jcpPanel.getFrame(), + null, + "Reaction Chooser", + "Choose reaction to add reaction to", + JOptionPane.PLAIN_MESSAGE, + null, + ids, + ids[0] + ); + //String s2 = ""; + + if ((s != null) && (s.length() > 0)) + { + String selectedReactionID = s; + IReaction reaction = getReaction(reactionSet, selectedReactionID); + reaction.addProduct(model.getBuilder().newMolecule(newContainer)); + } else + { + logger.error("No reaction selected"); + } + } + } else + { + logger.warn("Don't know about this action type: " + type); + return; + } + } + // delete atoms in current model + model.getMoleculeSet().removeAtomContainer(container); + logger.debug("Deleted atom from old container..."); + model.setReactionSet(reactionSet); + + } + + + /** + * Gets the reactionIDs attribute of the CreateReactionAction object + * + *@param reactionSet Description of the Parameter + *@return The reactionIDs value + */ + private Object[] getReactionIDs(IReactionSet reactionSet) + { + if (reactionSet != null) + { + + String[] ids = new String[reactionSet.getReactionCount()]; + for (int i = 0; i < reactionSet.getReactionCount(); i++) + { + ids[i] = reactionSet.getReaction(i).getID(); + } + return ids; + } else + { + return new String[0]; + } + } + + + /** + * Gets the reaction attribute of the CreateReactionAction object + * + *@param reactionSet Description of the Parameter + *@param id Description of the Parameter + *@return The reaction value + */ + private org.openscience.cdk.interfaces.IReaction getReaction(org.openscience.cdk.interfaces.IReactionSet reactionSet, String id) + { + Iterable<IReaction> reactionIter = reactionSet.reactions(); + for (IReaction reaction : reactionIter) + { + if (reaction.getID().equals(id)) + { + return reaction; + } + } + return null; + } +} + Property changes on: jchempaint/trunk/src/main/org/openscience/jchempaint/action/CreateReactionAction.java ___________________________________________________________________ Added: svn:executable + * Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-02-11 10:09:33 UTC (rev 14164) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-02-11 11:24:07 UTC (rev 14165) @@ -188,10 +188,10 @@ openEntryInMedlineAction=org.openscience.cdk.applications.jchempaint.action.WebLinkAction@medline openEntryInPDBAction=org.openscience.cdk.applications.jchempaint.action.WebLinkAction@pdb commentAction=org.openscience.cdk.applications.jchempaint.action.ShowChemObjectProperty@Comment -addReactantToNewReactionAction=org.openscience.cdk.applications.jchempaint.action.CreateReactionAction@addReactantToNew -addProductToNewReactionAction=org.openscience.cdk.applications.jchempaint.action.CreateReactionAction@addProductToNew -addReactantToExistingReactionAction=org.openscience.cdk.applications.jchempaint.action.CreateReactionAction@addReactantToExisting -addProductToExistingReactionAction=org.openscience.cdk.applications.jchempaint.action.CreateReactionAction@addProductToExisting +addReactantToNewReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addReactantToNew +addProductToNewReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addProductToNew +addReactantToExistingReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addReactantToExisting +addProductToExistingReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addProductToExisting showChemObjectPropertiesAction=org.openscience.jchempaint.action.EditChemObjectPropsAction showACPropertiesAction=org.openscience.jchempaint.action.EditAtomContainerPropsAction atomToPseudoAtomAction=org.openscience.cdk.applications.jchempaint.action.ConvertToAction@atomToPseudoAtom This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-02-11 17:08:29
|
Revision: 14171 http://cdk.svn.sourceforge.net/cdk/?rev=14171&view=rev Author: shk3 Date: 2009-02-11 17:08:25 +0000 (Wed, 11 Feb 2009) Log Message: ----------- Reaction context menu shows up Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java jchempaint/trunk/src/main/org/openscience/jchempaint/SwingPopupModule.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/CreateReactionAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-02-11 16:05:13 UTC (rev 14170) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-02-11 17:08:25 UTC (rev 14171) @@ -156,7 +156,8 @@ entries.put("symbolZn", GT._("Zn")); entries.put("symbolSn", GT._("Sn")); entries.put("pseudoStar", GT._("*")); - entries.put("pseudoR", GT._("R")); + entries.put("pseudoR", GT._("R")); + entries.put("selectReactants", GT._("Select Reactants Only")); entries.put("bondTooltip", GT._("Draw Bonds and Atoms")); entries.put("cyclesymbolTooltip", GT._("Change the Atom's Symbol")); entries.put("periodictableTooltip", GT._("Select new drawing symbol from periodic table")); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/SwingPopupModule.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/SwingPopupModule.java 2009-02-11 16:05:13 UTC (rev 14170) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/SwingPopupModule.java 2009-02-11 17:08:25 UTC (rev 14171) @@ -28,6 +28,7 @@ */ package org.openscience.jchempaint; +import java.awt.Rectangle; import java.util.Hashtable; import javax.vecmath.Point2d; @@ -79,7 +80,7 @@ *@return The popupMenu value */ public JChemPaintPopupMenu getPopupMenu(Class classSearched) { - logger.debug("Searching popup for: ", classSearched.getName()); + logger.debug("Searching popup for: ", classSearched.getName()); while (classSearched.getName().startsWith("org.openscience.cdk")) { logger.debug("Searching popup for: ", classSearched.getName()); if (SwingPopupModule.popupMenus.containsKey(classSearched.getName())) { @@ -97,6 +98,12 @@ IChemObject objectInRange = renderer.getRenderer().getRenderer2DModel().getHighlightedAtom(); if(objectInRange==null) objectInRange = renderer.getRenderer().getRenderer2DModel().getHighlightedBond(); + //look if we are in a reaction box + if(objectInRange==null && renderer.getChemModel().getReactionSet()!=null && renderer.getChemModel().getReactionSet().getReactionCount()>0){ + Rectangle reactionbounds = renderer.getRenderer().calculateScreenBounds(renderer.getChemModel().getReactionSet()); + if(reactionbounds.contains(mouseCoords.x, mouseCoords.y)) + objectInRange = renderer.getChemModel().getReactionSet().getReaction(0); + } if(objectInRange==null) objectInRange = chemModelRelay.getIChemModel(); JChemPaintPopupMenu popupMenu = getPopupMenu(objectInRange.getClass()); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/CreateReactionAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CreateReactionAction.java 2009-02-11 16:05:13 UTC (rev 14170) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/CreateReactionAction.java 2009-02-11 17:08:25 UTC (rev 14171) @@ -175,7 +175,7 @@ model.getMoleculeSet().removeAtomContainer(container); logger.debug("Deleted atom from old container..."); model.setReactionSet(reactionSet); - + jcpPanel.get2DHub().updateView(); } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java 2009-02-11 16:05:13 UTC (rev 14170) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java 2009-02-11 17:08:25 UTC (rev 14171) @@ -50,6 +50,7 @@ import org.openscience.cdk.renderer.selection.RectangleSelection; import org.openscience.cdk.renderer.selection.ShapeSelection; import org.openscience.cdk.tools.manipulator.ChemModelManipulator; +import org.openscience.cdk.tools.manipulator.MoleculeSetManipulator; import org.openscience.cdk.tools.manipulator.ReactionManipulator; import org.openscience.jchempaint.action.CopyPasteAction.JcpSelection; @@ -191,18 +192,24 @@ else { logger.warn("Cannot select everything in : ", object); } - }/* + } else if (type.equals("selectReactionReactants")) { IChemObject object = getSource(event); if (object instanceof Reaction) { Reaction reaction = (Reaction) object; - IAtomContainer wholeModel = jcpModel.getChemModel().getBuilder().newAtomContainer(); + IAtomContainer wholeModel = jcpPanel.getChemModel().getBuilder().newAtomContainer(); Iterator containers = MoleculeSetManipulator.getAllAtomContainers(reaction.getReactants()).iterator(); while (containers.hasNext()) { wholeModel.add((IAtomContainer)containers.next()); } - renderModel.setSelectedPart(wholeModel); - jcpModel.fireChange(); + ShapeSelection container = new RectangleSelection(); + for(IAtom atom:wholeModel.atoms()){ + container.atoms.add(atom); + } + for(IBond bond:wholeModel.bonds()){ + container.bonds.add(bond); + } + renderModel.setSelection(container); } else { logger.warn("Cannot select reactants from : ", object); @@ -212,18 +219,24 @@ IChemObject object = getSource(event); if (object instanceof Reaction) { Reaction reaction = (Reaction) object; - IAtomContainer wholeModel = jcpModel.getChemModel().getBuilder().newAtomContainer(); + IAtomContainer wholeModel = jcpPanel.getChemModel().getBuilder().newAtomContainer(); Iterator containers = MoleculeSetManipulator.getAllAtomContainers(reaction.getProducts()).iterator(); while (containers.hasNext()) { wholeModel.add((IAtomContainer)containers.next()); } - renderModel.setSelectedPart(wholeModel); - jcpModel.fireChange(); + ShapeSelection container = new RectangleSelection(); + for(IAtom atom:wholeModel.atoms()){ + container.atoms.add(atom); + } + for(IBond bond:wholeModel.bonds()){ + container.bonds.add(bond); + } + renderModel.setSelection(container); } else { logger.warn("Cannot select reactants from : ", object); } - }*/ + } else { logger.warn("Unsupported EditAction: " + type); } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2009-02-11 16:05:13 UTC (rev 14170) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2009-02-11 17:08:25 UTC (rev 14171) @@ -95,7 +95,7 @@ chemmodelpopup= cutSelected selectAll - @hydrogen \ adjustBondOrders resetBondOrders - cleanup - \ runValidate - toolbar++ statusbar++ menubar++ insertstructure++ -reactionpopup=selectFromChemObject - runValidate \ +reactionpopup=selectFromChemObject selectReactants - runValidate \ showChemObjectProperties ####################################################### Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-02-11 16:05:13 UTC (rev 14170) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-02-11 17:08:25 UTC (rev 14171) @@ -182,8 +182,8 @@ # Popup specific actions selectFromChemObjectAction=org.openscience.jchempaint.action.EditAction@selectFromChemObject -selectReactantsAction=org.openscience.cdk.applications.jchempaint.action.EditAction@selectReactionReactants -selectProductsAction=org.openscience.cdk.applications.jchempaint.action.EditAction@selectReactionProducts +selectReactantsAction=org.openscience.jchempaint.action.EditAction@selectReactionReactants +selectProductsAction=org.openscience.jchempaint.action.EditAction@selectReactionProducts addReactantToNewReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addReactantToNew addProductToNewReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addProductToNew addReactantToExistingReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addReactantToExisting This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-02-19 16:47:53
|
Revision: 14202 http://cdk.svn.sourceforge.net/cdk/?rev=14202&view=rev Author: shk3 Date: 2009-02-19 16:47:46 +0000 (Thu, 19 Feb 2009) Log Message: ----------- the undo stack size is not taken from properties (nice side effect: got the properties loading working again, which was silently broken) Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPPropertyHandler.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/GeneralSettingsEditor.java jchempaint/trunk/src/main/org/openscience/jchempaint/undoredo/SwingAddAtomsAndBondsEdit.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JCPPropertyHandler.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPPropertyHandler.java 2009-02-19 16:00:43 UTC (rev 14201) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JCPPropertyHandler.java 2009-02-19 16:47:46 UTC (rev 14202) @@ -115,7 +115,7 @@ InputStream defaultStream; try { - defaultStream = JCPPropertyHandler.class.getResourceAsStream("resources/text/JChemPaintResources.properties"); + defaultStream = this.getClass().getClassLoader().getResourceAsStream("org/openscience/jchempaint/resources/JChemPaintResources.properties"); defaultProps = new Properties(); defaultProps.load(defaultStream); defaultStream.close(); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-02-19 16:00:43 UTC (rev 14201) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-02-19 16:47:46 UTC (rev 14202) @@ -115,8 +115,7 @@ renderPanel.getHub().registerGeneralControllerModule(inputAdapter); renderPanel.getHub().setEventHandler(this); instances.add(this); - //TODO this should be configurable - undoManager.setLimit(100); + undoManager.setLimit(Integer.parseInt(JCPPropertyHandler.getInstance().getJCPProperties().getProperty("General.UndoStackSize"))); } public Container getTopLevelContainer() { Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/GeneralSettingsEditor.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/GeneralSettingsEditor.java 2009-02-19 16:00:43 UTC (rev 14201) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/dialog/GeneralSettingsEditor.java 2009-02-19 16:47:46 UTC (rev 14202) @@ -32,8 +32,11 @@ import java.awt.event.ActionListener; import java.util.Properties; +import javax.swing.Icon; import javax.swing.JCheckBox; import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JTextField; import org.openscience.jchempaint.GT; import org.openscience.jchempaint.JCPPropertyHandler; @@ -47,6 +50,7 @@ private static final long serialVersionUID = -6796422949531937872L; private JCheckBox askForIOSettings; + private JTextField undoStackSize; private JFrame frame; @@ -59,11 +63,14 @@ private void constructPanel() { askForIOSettings = new JCheckBox(); addField(GT._("Ask for IO settings"), askForIOSettings); + undoStackSize = new JTextField(); + addField(GT._("Undo/redo stack size"), undoStackSize); } public void setSettings() { Properties props = JCPPropertyHandler.getInstance().getJCPProperties(); askForIOSettings.setSelected(props.getProperty("askForIOSettings", "true").equals("true")); + undoStackSize.setText(props.getProperty("General.UndoStackSize")); validate(); } @@ -72,6 +79,17 @@ props.setProperty("askForIOSettings", askForIOSettings.isSelected() ? "true" : "false" ); + try{ + int size=Integer.parseInt(undoStackSize.getText()); + if(size<1 || size>100) + throw new Exception("wrong number"); + props.setProperty("General.UndoStackSize", + undoStackSize.getText() + ); + } + catch(Exception ex){ + JOptionPane.showInternalMessageDialog(this, GT._("Undo/redo stack size")+" "+GT._("must be a number from 1 to 100"), GT._("Undo/redo stack size"), JOptionPane.WARNING_MESSAGE); + } } /** Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/undoredo/SwingAddAtomsAndBondsEdit.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/undoredo/SwingAddAtomsAndBondsEdit.java 2009-02-19 16:00:43 UTC (rev 14201) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/undoredo/SwingAddAtomsAndBondsEdit.java 2009-02-19 16:47:46 UTC (rev 14202) @@ -66,7 +66,7 @@ } public boolean replaceEdit(UndoableEdit arg0) { - return true; + return false; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-02-23 18:03:07
|
Revision: 14241 http://cdk.svn.sourceforge.net/cdk/?rev=14241&view=rev Author: shk3 Date: 2009-02-23 18:03:00 +0000 (Mon, 23 Feb 2009) Log Message: ----------- more undo/redo, cleaned up the cut/copy/paste Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/NewAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties Removed Paths: ------------- jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java 2009-02-23 18:02:17 UTC (rev 14240) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java 2009-02-23 18:03:00 UTC (rev 14241) @@ -39,23 +39,26 @@ import java.io.StringWriter; import java.io.Writer; import java.lang.reflect.Constructor; -import java.util.ArrayList; import java.util.Iterator; -import java.util.List; +import javax.swing.JOptionPane; + +import org.openscience.cdk.Atom; +import org.openscience.cdk.Bond; import org.openscience.cdk.ChemFile; import org.openscience.cdk.DefaultChemObjectBuilder; import org.openscience.cdk.Molecule; -import org.openscience.cdk.MoleculeSet; +import org.openscience.cdk.Reaction; import org.openscience.cdk.controller.ControllerHub; import org.openscience.cdk.controller.MoveModule; +import org.openscience.cdk.controller.undoredo.IUndoRedoable; import org.openscience.cdk.geometry.GeometryTools; import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.interfaces.IBond; import org.openscience.cdk.interfaces.IChemFile; import org.openscience.cdk.interfaces.IChemModel; -import org.openscience.cdk.interfaces.IMoleculeSet; +import org.openscience.cdk.interfaces.IChemObject; import org.openscience.cdk.io.IChemObjectWriter; import org.openscience.cdk.io.ISimpleChemObjectReader; import org.openscience.cdk.io.MDLV2000Reader; @@ -66,9 +69,15 @@ import org.openscience.cdk.renderer.RendererModel; import org.openscience.cdk.renderer.selection.IChemObjectSelection; import org.openscience.cdk.renderer.selection.LogicalSelection; +import org.openscience.cdk.renderer.selection.RectangleSelection; +import org.openscience.cdk.renderer.selection.ShapeSelection; import org.openscience.cdk.smiles.SmilesGenerator; import org.openscience.cdk.smiles.SmilesParser; import org.openscience.cdk.tools.manipulator.ChemFileManipulator; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; +import org.openscience.cdk.tools.manipulator.MoleculeSetManipulator; +import org.openscience.cdk.tools.manipulator.ReactionManipulator; +import org.openscience.jchempaint.GT; /** * Action to copy/paste structures. @@ -85,6 +94,10 @@ "image/svg+xml", "scalable vector graphics"); private DataFlavor cmlFlavor = new DataFlavor( "image/cml", "chemical markup language"); + + /*public CopyPasteAction(JChemPaintPanel jcppanel){ + this.jcpPanel=jcppanel; + }*/ public void actionPerformed(ActionEvent e) { try { @@ -93,6 +106,7 @@ logger.debug(" source ", e.getSource()); RendererModel renderModel = jcpPanel.get2DHub().getRenderer().getRenderer2DModel(); + IChemModel chemModel = jcpPanel.getChemModel(); if ("copy".equals(type)) { IAtomContainer copy = renderModel.getSelection().getConnectedAtomContainer(); @@ -150,14 +164,8 @@ if (toPaste != null) { //translate the new structure a bit double hDistance = renderModel.getHighlightDistance(); - GeometryTools.translate2D(toPaste, hDistance, hDistance); - IChemModel chemModel = jcpPanel.getChemModel(); - IMoleculeSet moleculeSet = chemModel.getMoleculeSet(); - if (moleculeSet == null) { - moleculeSet = new MoleculeSet(); - } - moleculeSet.addAtomContainer(toPaste); - jcpPanel.getChemModel().setMoleculeSet(moleculeSet); + GeometryTools.translate2D(toPaste, hDistance, hDistance); + jcpPanel.get2DHub().addFragment(toPaste); //We select the inserted structure IChemObjectSelection selection @@ -168,9 +176,176 @@ ControllerHub hub = jcpPanel.get2DHub(); hub.setActiveDrawModule(new MoveModule(hub)); - hub.updateView(); } - } + } else if (type.equals("cut")) { + org.openscience.cdk.interfaces.IAtom atomInRange = null; + IChemObject object = getSource(e); + logger.debug("Source of call: ", object); + if (object instanceof Atom) { + atomInRange = (Atom) object; + } + else { + atomInRange = renderModel.getHighlightedAtom(); + } + if (atomInRange != null) { + try{ + Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard(); + IAtomContainer tocopyclone=atomInRange.getBuilder().newAtomContainer(); + tocopyclone.addAtom((IAtom)atomInRange.clone()); + JcpSelection jcpselection=new JcpSelection(tocopyclone); + sysClip.setContents(jcpselection,null); + }catch(Exception ex){ + //shouldn't happen + ex.printStackTrace(); + } + IAtomContainer removedpart = jcpPanel.get2DHub().removeAtom(atomInRange); + if(jcpPanel.get2DHub().getUndoRedoFactory()!=null && jcpPanel.get2DHub().getUndoRedoHandler()!=null){ + IUndoRedoable undoredo = jcpPanel.get2DHub().getUndoRedoFactory().getRemoveAtomsAndBondsEdit(chemModel, removedpart, GT._("Cut Bond")); + jcpPanel.get2DHub().getUndoRedoHandler().postEdit(undoredo); + } + } + else { + org.openscience.cdk.interfaces.IBond bond = renderModel.getHighlightedBond(); + if (bond != null) { + jcpPanel.get2DHub().removeBond(bond); + if(jcpPanel.get2DHub().getUndoRedoFactory()!=null && jcpPanel.get2DHub().getUndoRedoHandler()!=null){ + IAtomContainer removedpart=bond.getBuilder().newAtomContainer(); + removedpart.addBond(bond); + IUndoRedoable undoredo = jcpPanel.get2DHub().getUndoRedoFactory().getRemoveAtomsAndBondsEdit(chemModel, removedpart, GT._("Cut Bond")); + jcpPanel.get2DHub().getUndoRedoHandler().postEdit(undoredo); + } + } + } + } + else if (type.equals("cutSelected")) { + IAtomContainer undoRedoContainer = chemModel.getBuilder().newAtomContainer(); + logger.debug("Deleting all selected atoms..."); + if (renderModel.getSelection().getConnectedAtomContainer() == null || renderModel.getSelection().getConnectedAtomContainer().getAtomCount() == 0) { + JOptionPane.showMessageDialog(jcpPanel, "No selection made. Please select some atoms first!", "Error warning", JOptionPane.WARNING_MESSAGE); + } + else { + IAtomContainer selected = renderModel.getSelection().getConnectedAtomContainer(); + try{ + Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard(); + IAtomContainer tocopyclone=(IAtomContainer)selected.clone(); + JcpSelection jcpselection=new JcpSelection(tocopyclone); + sysClip.setContents(jcpselection,null); + }catch(Exception ex){ + //shouldn't happen + ex.printStackTrace(); + } + logger.debug("Found # atoms to delete: ", selected.getAtomCount()); + jcpPanel.get2DHub().deleteFragment(selected); + } + renderModel.setSelection(new LogicalSelection(LogicalSelection.Type.NONE)); + + } + else if (type.equals("selectAll")) { + IChemObjectSelection allSelection = + new LogicalSelection(LogicalSelection.Type.ALL); + allSelection.select(jcpPanel.getChemModel()); + renderModel.setSelection(allSelection); + jcpPanel.setMoveAction(); + ControllerHub hub = jcpPanel.get2DHub(); + hub.setActiveDrawModule(new MoveModule(hub)); + } else if (type.equals("selectMolecule")) { + IChemObject object = getSource(e); + IAtomContainer relevantAtomContainer=null; + if (object instanceof Atom) { + relevantAtomContainer = ChemModelManipulator.getRelevantAtomContainer(jcpPanel.getChemModel(),(Atom)object); + } else if (object instanceof org.openscience.cdk.interfaces.IBond) { + relevantAtomContainer = ChemModelManipulator.getRelevantAtomContainer(jcpPanel.getChemModel(),(Bond)object); + } else { + logger.warn("selectMolecule not defined for the calling object ", object); + } + if(relevantAtomContainer!=null){ + ShapeSelection container = new RectangleSelection(); + for(IAtom atom:relevantAtomContainer.atoms()){ + container.atoms.add(atom); + } + for(IBond bond:relevantAtomContainer.bonds()){ + container.bonds.add(bond); + } + renderModel.setSelection(container); + } + } else if (type.equals("selectFromChemObject")) { + // FIXME: implement for others than Reaction, Atom, Bond + IChemObject object = getSource(e); + if (object instanceof Atom) { + ShapeSelection container = new RectangleSelection(); + container.atoms.add((Atom) object); + renderModel.setSelection(container); + } + else if (object instanceof org.openscience.cdk.interfaces.IBond) { + ShapeSelection container = new RectangleSelection(); + container.bonds.add((Bond) object); + renderModel.setSelection(container); + } + else if (object instanceof Reaction) { + IAtomContainer wholeModel = jcpPanel.getChemModel().getBuilder().newAtomContainer(); + Iterator containers = ReactionManipulator.getAllAtomContainers((Reaction)object).iterator(); + while (containers.hasNext()) { + wholeModel.add((IAtomContainer)containers.next()); + } + ShapeSelection container = new RectangleSelection(); + for(IAtom atom:wholeModel.atoms()){ + container.atoms.add(atom); + } + for(IBond bond:wholeModel.bonds()){ + container.bonds.add(bond); + } + renderModel.setSelection(container); + } + else { + logger.warn("Cannot select everything in : ", object); + } + } + else if (type.equals("selectReactionReactants")) { + IChemObject object = getSource(e); + if (object instanceof Reaction) { + Reaction reaction = (Reaction) object; + IAtomContainer wholeModel = jcpPanel.getChemModel().getBuilder().newAtomContainer(); + Iterator containers = MoleculeSetManipulator.getAllAtomContainers(reaction.getReactants()).iterator(); + while (containers.hasNext()) { + wholeModel.add((IAtomContainer)containers.next()); + } + ShapeSelection container = new RectangleSelection(); + for(IAtom atom:wholeModel.atoms()){ + container.atoms.add(atom); + } + for(IBond bond:wholeModel.bonds()){ + container.bonds.add(bond); + } + renderModel.setSelection(container); + } + else { + logger.warn("Cannot select reactants from : ", object); + } + } + else if (type.equals("selectReactionProducts")) { + IChemObject object = getSource(e); + if (object instanceof Reaction) { + Reaction reaction = (Reaction) object; + IAtomContainer wholeModel = jcpPanel.getChemModel().getBuilder().newAtomContainer(); + Iterator containers = MoleculeSetManipulator.getAllAtomContainers(reaction.getProducts()).iterator(); + while (containers.hasNext()) { + wholeModel.add((IAtomContainer)containers.next()); + } + ShapeSelection container = new RectangleSelection(); + for(IAtom atom:wholeModel.atoms()){ + container.atoms.add(atom); + } + for(IBond bond:wholeModel.bonds()){ + container.bonds.add(bond); + } + renderModel.setSelection(container); + } + else { + logger.warn("Cannot select reactants from : ", object); + } + } + jcpPanel.get2DHub().updateView(); + jcpPanel.updateStatusBar(); } catch(Exception ex){ ex.printStackTrace(); } Deleted: jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java 2009-02-23 18:02:17 UTC (rev 14240) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/EditAction.java 2009-02-23 18:03:00 UTC (rev 14241) @@ -1,251 +0,0 @@ -/* - * $RCSfile$ - * $Author: egonw $ - * $Date: 2007-01-04 17:26:00 +0000 (Thu, 04 Jan 2007) $ - * $Revision: 7634 $ - * - * Copyright (C) 1997-2008 Tobias Helmus, Stefan Kuhn - * - * Contact: cdk...@li... - * - * 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. - * All we ask is that proper credit is given for our work, which includes - * - but is not limited to - adding the above copyright notice to the beginning - * of your source code files, and to any copyright notice that you may distribute - * with programs based on this work. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - */ -package org.openscience.jchempaint.action; - -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.event.ActionEvent; -import java.util.Iterator; - -import javax.swing.JOptionPane; - -import org.openscience.cdk.Atom; -import org.openscience.cdk.Bond; -import org.openscience.cdk.Reaction; -import org.openscience.cdk.controller.ControllerHub; -import org.openscience.cdk.controller.MoveModule; -import org.openscience.cdk.interfaces.IAtom; -import org.openscience.cdk.interfaces.IAtomContainer; -import org.openscience.cdk.interfaces.IBond; -import org.openscience.cdk.interfaces.IChemModel; -import org.openscience.cdk.interfaces.IChemObject; -import org.openscience.cdk.renderer.RendererModel; -import org.openscience.cdk.renderer.selection.IChemObjectSelection; -import org.openscience.cdk.renderer.selection.LogicalSelection; -import org.openscience.cdk.renderer.selection.RectangleSelection; -import org.openscience.cdk.renderer.selection.ShapeSelection; -import org.openscience.cdk.tools.manipulator.ChemModelManipulator; -import org.openscience.cdk.tools.manipulator.MoleculeSetManipulator; -import org.openscience.cdk.tools.manipulator.ReactionManipulator; -import org.openscience.jchempaint.action.CopyPasteAction.JcpSelection; - -/** - * This class implements editing options from the 'Edit' menu. - * These actions are implemented: - * <ul> - * <li>cut, deletes all atoms and connected electron containers - * <li>cutSelected, deletes all selected atoms and electron containers - * <li>selectAll, selects all atoms and electron containers - * <li>selectFromChemObject,selects all atoms and electron containers in - * the IChemObject set in the event source - * </ul> - */ -public class EditAction extends JCPAction { - - private static final long serialVersionUID = -1051272879400028225L; - - public void actionPerformed(ActionEvent event) { - // learn some stuff about event - logger.debug("Event source: ", event.getSource().getClass().getName()); - logger.debug(" IChemObject: ", getSource(event)); - - RendererModel renderModel - = jcpPanel.get2DHub().getRenderer().getRenderer2DModel(); - IChemModel chemModel = jcpPanel.getChemModel(); - if (type.equals("cut")) { - org.openscience.cdk.interfaces.IAtom atomInRange = null; - IChemObject object = getSource(event); - logger.debug("Source of call: ", object); - if (object instanceof Atom) { - atomInRange = (Atom) object; - } - else { - atomInRange = renderModel.getHighlightedAtom(); - } - if (atomInRange != null) { - try{ - Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard(); - IAtomContainer tocopyclone=atomInRange.getBuilder().newAtomContainer(); - tocopyclone.addAtom((IAtom)atomInRange.clone()); - JcpSelection jcpselection=new CopyPasteAction().new JcpSelection(tocopyclone); - sysClip.setContents(jcpselection,null); - }catch(Exception ex){ - //shouldn't happen - ex.printStackTrace(); - } - ChemModelManipulator.removeAtomAndConnectedElectronContainers(chemModel, atomInRange); - } - else { - org.openscience.cdk.interfaces.IBond bond = renderModel.getHighlightedBond(); - if (bond != null) { - ChemModelManipulator.removeElectronContainer(chemModel, bond); - } - } - } - else if (type.equals("cutSelected")) { - IAtomContainer undoRedoContainer = chemModel.getBuilder().newAtomContainer(); - logger.debug("Deleting all selected atoms..."); - if (renderModel.getSelection().getConnectedAtomContainer() == null || renderModel.getSelection().getConnectedAtomContainer().getAtomCount() == 0) { - JOptionPane.showMessageDialog(jcpPanel, "No selection made. Please select some atoms first!", "Error warning", JOptionPane.WARNING_MESSAGE); - } - else { - IAtomContainer selected = renderModel.getSelection().getConnectedAtomContainer(); - try{ - Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard(); - IAtomContainer tocopyclone=(IAtomContainer)selected.clone(); - JcpSelection jcpselection=new CopyPasteAction().new JcpSelection(tocopyclone); - sysClip.setContents(jcpselection,null); - }catch(Exception ex){ - //shouldn't happen - ex.printStackTrace(); - } - logger.debug("Found # atoms to delete: ", selected.getAtomCount()); - for (int i = 0; i < selected.getAtomCount(); i++) { - undoRedoContainer.add(selected); - for(int k=0;k<ChemModelManipulator.getRelevantAtomContainer(chemModel,selected.getAtom(i)).getConnectedBondsCount(selected.getAtom(i));k++){ - undoRedoContainer.addBond((IBond)ChemModelManipulator.getRelevantAtomContainer(chemModel,selected.getAtom(i)).getConnectedBondsList(selected.getAtom(i)).get(k)); - } - ChemModelManipulator.removeAtomAndConnectedElectronContainers(chemModel, selected.getAtom(i)); - } - } - renderModel.setSelection(new LogicalSelection(LogicalSelection.Type.NONE)); - } - else if (type.equals("selectAll")) { - IChemObjectSelection allSelection = - new LogicalSelection(LogicalSelection.Type.ALL); - allSelection.select(jcpPanel.getChemModel()); - renderModel.setSelection(allSelection); - jcpPanel.setMoveAction(); - ControllerHub hub = jcpPanel.get2DHub(); - hub.setActiveDrawModule(new MoveModule(hub)); - jcpPanel.updateStatusBar(); - } else if (type.equals("selectMolecule")) { - IChemObject object = getSource(event); - IAtomContainer relevantAtomContainer=null; - if (object instanceof Atom) { - relevantAtomContainer = ChemModelManipulator.getRelevantAtomContainer(jcpPanel.getChemModel(),(Atom)object); - } else if (object instanceof org.openscience.cdk.interfaces.IBond) { - relevantAtomContainer = ChemModelManipulator.getRelevantAtomContainer(jcpPanel.getChemModel(),(Bond)object); - } else { - logger.warn("selectMolecule not defined for the calling object ", object); - } - if(relevantAtomContainer!=null){ - ShapeSelection container = new RectangleSelection(); - for(IAtom atom:relevantAtomContainer.atoms()){ - container.atoms.add(atom); - } - for(IBond bond:relevantAtomContainer.bonds()){ - container.bonds.add(bond); - } - renderModel.setSelection(container); - } - } else if (type.equals("selectFromChemObject")) { - // FIXME: implement for others than Reaction, Atom, Bond - IChemObject object = getSource(event); - if (object instanceof Atom) { - ShapeSelection container = new RectangleSelection(); - container.atoms.add((Atom) object); - renderModel.setSelection(container); - } - else if (object instanceof org.openscience.cdk.interfaces.IBond) { - ShapeSelection container = new RectangleSelection(); - container.bonds.add((Bond) object); - renderModel.setSelection(container); - } - else if (object instanceof Reaction) { - IAtomContainer wholeModel = jcpPanel.getChemModel().getBuilder().newAtomContainer(); - Iterator containers = ReactionManipulator.getAllAtomContainers((Reaction)object).iterator(); - while (containers.hasNext()) { - wholeModel.add((IAtomContainer)containers.next()); - } - ShapeSelection container = new RectangleSelection(); - for(IAtom atom:wholeModel.atoms()){ - container.atoms.add(atom); - } - for(IBond bond:wholeModel.bonds()){ - container.bonds.add(bond); - } - renderModel.setSelection(container); - } - else { - logger.warn("Cannot select everything in : ", object); - } - } - else if (type.equals("selectReactionReactants")) { - IChemObject object = getSource(event); - if (object instanceof Reaction) { - Reaction reaction = (Reaction) object; - IAtomContainer wholeModel = jcpPanel.getChemModel().getBuilder().newAtomContainer(); - Iterator containers = MoleculeSetManipulator.getAllAtomContainers(reaction.getReactants()).iterator(); - while (containers.hasNext()) { - wholeModel.add((IAtomContainer)containers.next()); - } - ShapeSelection container = new RectangleSelection(); - for(IAtom atom:wholeModel.atoms()){ - container.atoms.add(atom); - } - for(IBond bond:wholeModel.bonds()){ - container.bonds.add(bond); - } - renderModel.setSelection(container); - } - else { - logger.warn("Cannot select reactants from : ", object); - } - } - else if (type.equals("selectReactionProducts")) { - IChemObject object = getSource(event); - if (object instanceof Reaction) { - Reaction reaction = (Reaction) object; - IAtomContainer wholeModel = jcpPanel.getChemModel().getBuilder().newAtomContainer(); - Iterator containers = MoleculeSetManipulator.getAllAtomContainers(reaction.getProducts()).iterator(); - while (containers.hasNext()) { - wholeModel.add((IAtomContainer)containers.next()); - } - ShapeSelection container = new RectangleSelection(); - for(IAtom atom:wholeModel.atoms()){ - container.atoms.add(atom); - } - for(IBond bond:wholeModel.bonds()){ - container.bonds.add(bond); - } - renderModel.setSelection(container); - } - else { - logger.warn("Cannot select reactants from : ", object); - } - } - else { - logger.warn("Unsupported EditAction: " + type); - } - jcpPanel.get2DHub().updateView(); - } - -} - Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/NewAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/NewAction.java 2009-02-23 18:02:17 UTC (rev 14240) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/NewAction.java 2009-02-23 18:03:00 UTC (rev 14241) @@ -52,6 +52,7 @@ if(jcpPanel.getGuistring().equals(JChemPaintEditorApplet.GUI_APPLET)){ int clear=jcpPanel.showWarning(); if(clear==JOptionPane.YES_OPTION){ + //TODO use zap here if(jcpPanel.getChemModel().getMoleculeSet()!=null) jcpPanel.getChemModel().getMoleculeSet().removeAllAtomContainers(); if(jcpPanel.getChemModel().getReactionSet()!=null) Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-02-23 18:02:17 UTC (rev 14240) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-02-23 18:03:00 UTC (rev 14241) @@ -88,10 +88,10 @@ # Edit menu undoAction=org.openscience.jchempaint.action.UndoAction redoAction=org.openscience.jchempaint.action.RedoAction -cutAction=org.openscience.jchempaint.action.EditAction@cut -cutSelectedAction=org.openscience.jchempaint.action.EditAction@cutSelected -selectAllAction=org.openscience.jchempaint.action.EditAction@selectAll -selectMoleculeAction=org.openscience.jchempaint.action.EditAction@selectMolecule +cutAction=org.openscience.jchempaint.action.CopyPasteAction@cut +cutSelectedAction=org.openscience.jchempaint.action.CopyPasteAction@cutSelected +selectAllAction=org.openscience.jchempaint.action.CopyPasteAction@selectAll +selectMoleculeAction=org.openscience.jchempaint.action.CopyPasteAction@selectMolecule copyAction=org.openscience.jchempaint.action.CopyPasteAction@copy pasteAction=org.openscience.jchempaint.action.CopyPasteAction@paste addImplHydrogenAction=org.openscience.cdk.applications.jchempaint.action.AddHydrogenAction@implicit @@ -177,9 +177,9 @@ licenseAction=org.openscience.jchempaint.action.LicenseAction # Popup specific actions -selectFromChemObjectAction=org.openscience.jchempaint.action.EditAction@selectFromChemObject -selectReactantsAction=org.openscience.jchempaint.action.EditAction@selectReactionReactants -selectProductsAction=org.openscience.jchempaint.action.EditAction@selectReactionProducts +selectFromChemObjectAction=org.openscience.jchempaint.action.CopyPasteAction@selectFromChemObject +selectReactantsAction=org.openscience.jchempaint.action.CopyPasteAction@selectReactionReactants +selectProductsAction=org.openscience.jchempaint.action.CopyPasteAction@selectReactionProducts addReactantToNewReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addReactantToNew addProductToNewReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addProductToNew addReactantToExistingReactionAction=org.openscience.jchempaint.action.CreateReactionAction@addReactantToExisting This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |