From: <sh...@us...> - 2009-08-19 13:20:03
|
Revision: 14743 http://cdk.svn.sourceforge.net/cdk/?rev=14743&view=rev Author: shk3 Date: 2009-08-19 12:25:09 +0000 (Wed, 19 Aug 2009) Log Message: ----------- working on the menus Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/AbstractJChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java jchempaint/trunk/src/main/org/openscience/jchempaint/applet/JChemPaintEditorApplet.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPShort_Cuts.properties jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletTest.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/AbstractJChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/AbstractJChemPaintPanel.java 2009-08-18 16:58:02 UTC (rev 14742) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/AbstractJChemPaintPanel.java 2009-08-19 12:25:09 UTC (rev 14743) @@ -28,10 +28,14 @@ */ package org.openscience.jchempaint; +import java.io.IOException; + import javax.swing.JPanel; import org.openscience.cdk.controller.ControllerHub; +import org.openscience.cdk.exception.CDKException; import org.openscience.cdk.interfaces.IChemModel; +import org.openscience.jchempaint.action.CreateSmilesAction; /** * An abstract superclass for the viewer and editor panel. @@ -76,4 +80,8 @@ public void setChemModel(IChemModel model){ renderPanel.setChemModel(model); } + + public String getSmiles() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException{ + return CreateSmilesAction.getSmiles(getChemModel()); + } } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-08-18 16:58:02 UTC (rev 14742) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JCPMenuTextMaker.java 2009-08-19 12:25:09 UTC (rev 14743) @@ -66,6 +66,8 @@ entries.put("redo", GT._("Redo")); entries.put("selectAll", GT._("Select All")); entries.put("copy", GT._("Copy")); + entries.put("copyAsSmiles", GT._("Copy as SMILES")); + entries.put("delete", GT._("Delete")); entries.put("paste", GT._("Paste")); entries.put("cutSelected", GT._("Cut")); entries.put("cut", GT._("Cut")); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-08-18 16:58:02 UTC (rev 14742) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintPanel.java 2009-08-19 12:25:09 UTC (rev 14743) @@ -640,16 +640,7 @@ public void keyReleased(KeyEvent arg0) { RendererModel model = renderPanel.getRenderer().getRenderer2DModel(); ControllerHub relay = renderPanel.getHub(); - if (arg0.getKeyCode() == KeyEvent.VK_DELETE) { - IChemObjectSelection selection = model.getSelection(); - if (selection.isFilled()) { - IAtomContainer selected = selection.getConnectedAtomContainer(); - relay.deleteFragment(selected); - model.setSelection(new LogicalSelection( - LogicalSelection.Type.NONE)); - relay.updateView(); - } - } else if (model.getHighlightedAtom() != null) { + if (model.getHighlightedAtom() != null) { try { IAtom closestAtom = model.getHighlightedAtom(); char x = arg0.getKeyChar(); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java 2009-08-18 16:58:02 UTC (rev 14742) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/action/CopyPasteAction.java 2009-08-19 12:25:09 UTC (rev 14743) @@ -40,21 +40,16 @@ import java.io.StringWriter; import java.io.Writer; import java.lang.reflect.Constructor; -import java.util.Iterator; +import java.util.List; import javax.swing.JOptionPane; -import net.sf.jniinchi.INCHI_RET; - import org.openscience.cdk.ChemFile; import org.openscience.cdk.DefaultChemObjectBuilder; import org.openscience.cdk.Molecule; import org.openscience.cdk.controller.ControllerHub; import org.openscience.cdk.controller.MoveModule; import org.openscience.cdk.exception.CDKException; -import org.openscience.cdk.geometry.GeometryTools; -import org.openscience.cdk.inchi.InChIGeneratorFactory; -import org.openscience.cdk.inchi.InChIToStructure; import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.interfaces.IBond; @@ -73,7 +68,6 @@ import org.openscience.cdk.layout.TemplateHandler; import org.openscience.cdk.renderer.RendererModel; import org.openscience.cdk.renderer.selection.IChemObjectSelection; -import org.openscience.cdk.renderer.selection.IncrementalSelection; import org.openscience.cdk.renderer.selection.LogicalSelection; import org.openscience.cdk.renderer.selection.RectangleSelection; import org.openscience.cdk.renderer.selection.ShapeSelection; @@ -86,8 +80,6 @@ import org.openscience.jchempaint.GT; import org.openscience.jchempaint.InsertTextPanel; -import sun.awt.AWTAutoShutdown; - /** * Action to copy/paste structures. * @@ -129,9 +121,38 @@ IChemModel chemModel = jcpPanel.getChemModel(); if ("copy".equals(type)) { - if(renderModel.getSelection().getConnectedAtomContainer()!=null) + if(renderModel.getSelection().getConnectedAtomContainer()!=null){ addToClipboard(sysClip, renderModel.getSelection().getConnectedAtomContainer()); + }else{ + List<IAtomContainer> acs=ChemModelManipulator.getAllAtomContainers(chemModel); + IAtomContainer allinone=chemModel.getBuilder().newAtomContainer(); + for(int i=0;i<acs.size();i++){ + allinone.add(acs.get(i)); + } + addToClipboard(sysClip,allinone); + } + } else if ("copyAsSmiles".equals(type)) { + try { + if(renderModel.getSelection().getConnectedAtomContainer()!=null){ + SmilesGenerator sg=new SmilesGenerator(); + sysClip.setContents(new SmilesSelection(sg.createSMILES(renderModel.getSelection().getConnectedAtomContainer().getBuilder().newMolecule(renderModel.getSelection().getConnectedAtomContainer()))),null); + }else{ + sysClip.setContents(new SmilesSelection(CreateSmilesAction.getSmiles(chemModel)),null); + } + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } else if ("delete".equals(type)) { + IChemObjectSelection selection = renderModel.getSelection(); + if (selection.isFilled()) { + IAtomContainer selected = selection.getConnectedAtomContainer(); + jcpPanel.get2DHub().deleteFragment(selected); + renderModel.setSelection(new LogicalSelection( + LogicalSelection.Type.NONE)); + jcpPanel.get2DHub().updateView(); + } } else if ("paste".equals(type)) { Transferable transfer = sysClip.getContents( null ); ISimpleChemObjectReader reader = null; @@ -485,5 +506,41 @@ System.out.println ("Lost ownership"); } } + + class SmilesSelection implements Transferable, ClipboardOwner { + private DataFlavor [] supportedFlavors = { + DataFlavor.stringFlavor + }; + + String smiles; + + public SmilesSelection(String smiles) throws Exception { + this.smiles = smiles; + } + + public synchronized DataFlavor [] getTransferDataFlavors () { + return (supportedFlavors); + } + + public boolean isDataFlavorSupported (DataFlavor parFlavor) { + for(int i=0;i<supportedFlavors.length;i++){ + if(supportedFlavors[i].equals(parFlavor)) + return true; + } + return false; + } + + public synchronized Object getTransferData (DataFlavor parFlavor) throws UnsupportedFlavorException { + if(parFlavor.equals(DataFlavor.stringFlavor)) { + return smiles; + } else { + throw new UnsupportedFlavorException (parFlavor); + } + } + + public void lostOwnership (Clipboard parClipboard, Transferable parTransferable) { + System.out.println ("Lost ownership"); + } + } } Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/applet/JChemPaintEditorApplet.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/applet/JChemPaintEditorApplet.java 2009-08-18 16:58:02 UTC (rev 14742) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/applet/JChemPaintEditorApplet.java 2009-08-19 12:25:09 UTC (rev 14743) @@ -39,6 +39,7 @@ chemModel.setMoleculeSet(chemModel.getBuilder().newMoleculeSet()); chemModel.getMoleculeSet().addAtomContainer(chemModel.getBuilder().newMolecule()); JChemPaintPanel p = new JChemPaintPanel(chemModel,GUI_APPLET,debug); + p.setName("appletframe"); p.setShowInsertTextField(false); p.setShowStatusBar(false); setTheJcpp(p); Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2009-08-18 16:58:02 UTC (rev 14742) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_stable.properties 2009-08-19 12:25:09 UTC (rev 14743) @@ -51,20 +51,22 @@ ####################################################### # menubar definition # ####################################################### -menubar=file edit view report +menubar=file edit view atom bond tools file=new open save saveAs - export print - close - exit -edit=undo redo - selectAll copy paste cutSelected - @hydrogen \ - adjustBondOrders resetBondOrders - @flip cleanup - \ - @preferences -view=toolbar++ statusbar++ menubar++ insertstructure++ - zoomin zoomout zoomoriginal - renderOptions -report=@validate - createSMILES createInChI +edit=undo redo - cutSelected copy copyAsSmiles paste - delete selectAll - @preferences renderOptions +view=zoomin zoomout zoomoriginal - cleanup @flip @hydrogen +atom=@formalCharge @isotopeChange convertToRadical @pseudoSymbols @valence - @symbolChange +bond=singleBond stereoDownBond stereoUpBond undefinedStereoBond undefinedEZBond +tools=@validate - createSMILES createInChI help=help tutorial - about license -hydrogen=addImplHydrogen++ makeHydrogenExplicit makeHydrogenImplicit updateHydrogenImplicit +hydrogen=hydroon hydrooff preferences=editPreferences reloadPreferences savePreferences validate=runValidate clearValidate flip=flipHorizontal flipVertical +formalCharge=chargePlus2 chargePlus1 chargeZero chargeMinus1 chargeMinus2 +valence= valencyOff valency1 valency2 valency3 valency4 valency5 valency6 valency7 valency8 ####################################################### # popup menu definitions # Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPShort_Cuts.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPShort_Cuts.properties 2009-08-18 16:58:02 UTC (rev 14742) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPShort_Cuts.properties 2009-08-19 12:25:09 UTC (rev 14743) @@ -41,6 +41,7 @@ close=alt C cutSelected=control X copy=control X +delete=pressed DELETE paste=control V selectAll=control A modelProps=control M Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-08-18 16:58:02 UTC (rev 14742) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JChemPaintResources.properties 2009-08-19 12:25:09 UTC (rev 14743) @@ -104,6 +104,8 @@ selectAllAction=org.openscience.jchempaint.action.CopyPasteAction@selectAll selectMoleculeAction=org.openscience.jchempaint.action.CopyPasteAction@selectMolecule copyAction=org.openscience.jchempaint.action.CopyPasteAction@copy +copyAsSmilesAction=org.openscience.jchempaint.action.CopyPasteAction@copyAsSmiles +deleteAction=org.openscience.jchempaint.action.CopyPasteAction@delete pasteAction=org.openscience.jchempaint.action.CopyPasteAction@paste addImplHydrogenAction=org.openscience.jchempaint.action.AddHydrogenAction@trackimplicit makeHydrogenExplicitAction=org.openscience.jchempaint.action.AddHydrogenAction@allexplicit Modified: jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletTest.java =================================================================== --- jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletTest.java 2009-08-18 16:58:02 UTC (rev 14742) +++ jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletTest.java 2009-08-19 12:25:09 UTC (rev 14743) @@ -1,20 +1,25 @@ package org.openscience.jchempaint; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.fest.swing.applet.AppletViewer; import org.fest.swing.fixture.FrameFixture; +import org.fest.swing.fixture.JPanelFixture; import org.fest.swing.launcher.AppletLauncher; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; +import org.openscience.cdk.exception.CDKException; +import org.openscience.cdk.interfaces.IChemModel; import org.openscience.jchempaint.applet.JChemPaintEditorApplet; public class JCPEditorAppletTest { private static AppletViewer viewer; private static FrameFixture applet; + private static IChemModel originalModel; @BeforeClass public static void setUp() { @@ -25,6 +30,9 @@ .start(); applet = new FrameFixture(viewer); applet.show(); + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + originalModel=panel.getChemModel(); } @Test public void testReportSmiles() { @@ -34,6 +42,21 @@ Assert.assertTrue(text.indexOf("[H]C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])[H]")>-1); applet.dialog("smilestextdialog").close(); } + + @Test public void testMenuNew() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + applet.menuItem("new").click(); + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + Assert.assertEquals("",panel.getSmiles()); + restoreModel(); + } + + private void restoreModel(){ + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.setChemModel(originalModel); + } + @AfterClass public static void tearDown() { viewer.unloadApplet(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |