From: <sh...@us...> - 2009-09-15 17:51:23
|
Revision: 14835 http://cdk.svn.sourceforge.net/cdk/?rev=14835&view=rev Author: shk3 Date: 2009-09-15 17:51:16 +0000 (Tue, 15 Sep 2009) Log Message: ----------- The AddBondDragModule can now do stereo bonds. We do no longer need the AlterStereoBondModule in this way without adding much to AddBondDragModule and we get all the nice things (sprouting etc.) for stereo bonds as well. Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPToolBar.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletDrawingTest.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JCPToolBar.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPToolBar.java 2009-09-15 17:26:27 UTC (rev 14834) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JCPToolBar.java 2009-09-15 17:51:16 UTC (rev 14835) @@ -42,6 +42,7 @@ import javax.swing.JToolBar; import javax.swing.SwingConstants; +import org.openscience.cdk.CDKConstants; import org.openscience.cdk.DefaultChemObjectBuilder; import org.openscience.cdk.controller.AddBondDragModule; import org.openscience.cdk.renderer.color.CDK2DAtomColors; @@ -257,7 +258,7 @@ { button.setBackground(Color.GRAY); chemPaintPanel.setLastActionButton(button); - AddBondDragModule activeModule = new AddBondDragModule(chemPaintPanel.get2DHub()); + AddBondDragModule activeModule = new AddBondDragModule(chemPaintPanel.get2DHub(), CDKConstants.STEREO_BOND_NONE); activeModule.setID(toolKeys[i]); chemPaintPanel.get2DHub().setActiveDrawModule(activeModule); chemPaintPanel.updateStatusBar(); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java 2009-09-15 17:26:27 UTC (rev 14834) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/ChangeModeAction.java 2009-09-15 17:51:16 UTC (rev 14835) @@ -35,6 +35,7 @@ import javax.swing.JComponent; +import org.openscience.cdk.CDKConstants; import org.openscience.cdk.controller.AddAtomModule; import org.openscience.cdk.controller.AddBondDragModule; import org.openscience.cdk.controller.AddRingModule; @@ -78,7 +79,7 @@ } else if (type.equals("minus")) { newActiveModule=new ChangeFormalChargeModule(hub, -1); } else if (type.equals("bond")) { - newActiveModule=new AddBondDragModule(hub); + newActiveModule=new AddBondDragModule(hub,CDKConstants.STEREO_BOND_NONE); } else if (type.equals("periodictable")) { newActiveModule=new AddAtomModule(hub); // open PeriodicTable panel @@ -94,21 +95,13 @@ newActiveModule=new SelectSquareModule(hub); hub.getController2DModel().setDrawElement("C"); } else if (type.equals("up_bond")) { - newActiveModule=new AlterBondStereoModule( - hub, Direction.UP); - hub.getController2DModel().setDrawElement("C"); + newActiveModule=new AddBondDragModule(hub, CDKConstants.STEREO_BOND_UP); } else if (type.equals("down_bond")) { - newActiveModule=new AlterBondStereoModule( - hub, Direction.DOWN); - hub.getController2DModel().setDrawElement("C"); + newActiveModule=new AddBondDragModule(hub, CDKConstants.STEREO_BOND_DOWN); } else if (type.equals("undefined_bond")) { - newActiveModule=new AlterBondStereoModule( - hub, Direction.UNDEFINED); - hub.getController2DModel().setDrawElement("C"); + newActiveModule=new AddBondDragModule(hub, CDKConstants.STEREO_BOND_UNDEFINED); } else if (type.equals("undefined_stereo_bond")) { - newActiveModule=new AlterBondStereoModule( - hub, Direction.EZ_UNDEFINED); - hub.getController2DModel().setDrawElement("C"); + newActiveModule=new AddBondDragModule(hub, CDKConstants.EZ_BOND_UNDEFINED); } else if (type.equals("triangle")) { newActiveModule=new AddRingModule(hub, 3, false); hub.getController2DModel().setDrawElement("C"); Modified: jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletDrawingTest.java =================================================================== --- jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletDrawingTest.java 2009-09-15 17:26:27 UTC (rev 14834) +++ jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletDrawingTest.java 2009-09-15 17:51:16 UTC (rev 14835) @@ -45,33 +45,61 @@ JPanelFixture jcppanel=applet.panel("appletframe"); JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; int oldAtomCount=panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtomCount(); + //using bond button applet.button("bond").click(); + //can we add a new bond? Point2d moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getPoint2d().x,panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(1).getPoint2d().y); applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); Assert.assertEquals(oldAtomCount+1, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtomCount()); + //can we convert bond order? moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates((panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().x+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().x)/2,(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().y+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().y)/2); applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); Assert.assertEquals(IBond.Order.DOUBLE, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBond(2).getOrder()); + //using up bond button, applet.button("up_bond").click(); + //can we add a new bond? moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getPoint2d().x,panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(1).getPoint2d().y); applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); Assert.assertEquals(oldAtomCount+2, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtomCount()); Assert.assertEquals(CDKConstants.STEREO_BOND_UP, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBond(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBondCount()-1).getStereo()); + //can we convert an existing one? + moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates((panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().x+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().x)/2,(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().y+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().y)/2); + applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); + Assert.assertEquals(CDKConstants.STEREO_BOND_UP, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBond(2).getStereo()); + //using down bond button, applet.button("down_bond").click(); + //can we add a new bond? moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getPoint2d().x,panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(1).getPoint2d().y); applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); Assert.assertEquals(oldAtomCount+3, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtomCount()); Assert.assertEquals(CDKConstants.STEREO_BOND_DOWN, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBond(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBondCount()-1).getStereo()); + //can we convert an existing one? + moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates((panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().x+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().x)/2,(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().y+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().y)/2); + applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); + //note it must be STEREO_BOND_DOWN_INV, since it was up before + Assert.assertEquals(CDKConstants.STEREO_BOND_DOWN_INV, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBond(2).getStereo()); + //using undefined bond button, applet.button("undefined_bond").click(); + //can we add a new bond? moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getPoint2d().x,panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(1).getPoint2d().y); applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); Assert.assertEquals(oldAtomCount+4, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtomCount()); Assert.assertEquals(CDKConstants.STEREO_BOND_UNDEFINED, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBond(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBondCount()-1).getStereo()); + //can we convert an existing one? + moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates((panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().x+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().x)/2,(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().y+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().y)/2); + applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); + Assert.assertEquals(CDKConstants.STEREO_BOND_UNDEFINED, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBond(2).getStereo()); + //using undefined stereo button, applet.button("undefined_stereo_bond").click(); + //can we add a new bond? moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getPoint2d().x,panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(1).getPoint2d().y); applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); Assert.assertEquals(oldAtomCount+5, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtomCount()); Assert.assertEquals(CDKConstants.EZ_BOND_UNDEFINED, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBond(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBondCount()-1).getStereo()); + //can we convert an existing one? + moveto=panel.getRenderPanel().getRenderer().toScreenCoordinates((panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().x+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().x)/2,(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(2).getPoint2d().y+panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(3).getPoint2d().y)/2); + applet.panel("renderpanel").robot.click(applet.panel("renderpanel").component(), new Point((int)moveto.x, (int)moveto.y), MouseButton.LEFT_BUTTON,1); + Assert.assertEquals(CDKConstants.EZ_BOND_UNDEFINED, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getBond(2).getStereo()); } @Test public void testElement() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |