From: <nie...@us...> - 2007-09-18 00:14:42
|
Revision: 8941 http://cdk.svn.sourceforge.net/cdk/?rev=8941&view=rev Author: nielsout Date: 2007-09-17 17:14:39 -0700 (Mon, 17 Sep 2007) Log Message: ----------- editor now shows what the current drawing mode is Modified Paths: -------------- trunk/cdk/src/org/openscience/cdk/controller/Controller2DHub.java trunk/cdk/src/org/openscience/cdk/controller/Controller2DModuleAddAtom.java trunk/cdk/src/org/openscience/cdk/renderer/progz/JCPActionChangeMode.java trunk/cdk/src/org/openscience/cdk/renderer/progz/SomeToolBar.java trunk/cdk/src/org/openscience/cdk/renderer/progz/TestEditor.java Modified: trunk/cdk/src/org/openscience/cdk/controller/Controller2DHub.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/controller/Controller2DHub.java 2007-09-17 04:20:08 UTC (rev 8940) +++ trunk/cdk/src/org/openscience/cdk/controller/Controller2DHub.java 2007-09-18 00:14:39 UTC (rev 8941) @@ -240,6 +240,7 @@ } return closestAtom; } + public void removeAtom(IAtom atom) { ChemModelManipulator.removeAtomAndConnectedElectronContainers(chemModel, atom); Modified: trunk/cdk/src/org/openscience/cdk/controller/Controller2DModuleAddAtom.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/controller/Controller2DModuleAddAtom.java 2007-09-17 04:20:08 UTC (rev 8940) +++ trunk/cdk/src/org/openscience/cdk/controller/Controller2DModuleAddAtom.java 2007-09-18 00:14:39 UTC (rev 8941) @@ -34,9 +34,11 @@ import javax.imageio.ImageIO; import javax.vecmath.Point2d; +import org.openscience.cdk.config.IsotopeFactory; import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.renderer.Renderer2DModel; import org.openscience.cdk.renderer.progz.IJava2DRenderer; +import org.openscience.cdk.tools.manipulator.ChemModelManipulator; import org.openscience.cdk.interfaces.IChemModel; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.Atom; @@ -70,12 +72,35 @@ } public void mouseClickedDown(Point2d worldCoord) { - // TODO Auto-generated method stub - // IAtom atom = new Atom(atomType); - // atom.setPoint2d(worldCoord); - System.out.println("Trying adding atom " + atomType); - chemObjectRelay.addAtom(atomType, worldCoord); + + IAtom closestAtom = chemObjectRelay.getClosestAtom(worldCoord); + if (closestAtom == null) { + //add atom + System.out.println("Trying adding atom " + atomType); + chemObjectRelay.addAtom(atomType, worldCoord); + } + else { + //replace existing atom with new one + String formerSymbol = closestAtom.getSymbol(); + + closestAtom.setSymbol(atomType); + // configure the atom, so that the atomic number matches the symbol + try + { + IsotopeFactory.getInstance(closestAtom.getBuilder()).configure(closestAtom); + } catch (Exception exception) + { + // logger.error("Error while configuring atom"); + // logger.debug(exception); + } + // update atom + // IAtomContainer container = ChemModelManipulator.getRelevantAtomContainer(chemObjectRelay.getIChemModel(), closestAtom); + //FIXME: make this update the hydrogen count? + // updateAtom(container, closestAtom); + + } chemObjectRelay.updateView(); + } public void mouseClickedUp(Point2d worldCoord) { Modified: trunk/cdk/src/org/openscience/cdk/renderer/progz/JCPActionChangeMode.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/renderer/progz/JCPActionChangeMode.java 2007-09-17 04:20:08 UTC (rev 8940) +++ trunk/cdk/src/org/openscience/cdk/renderer/progz/JCPActionChangeMode.java 2007-09-18 00:14:39 UTC (rev 8941) @@ -57,6 +57,7 @@ protected IController2DModule module; private String key; private Controller2DHub hub; + private TestEditor editor; /** * Description of the Field @@ -69,9 +70,10 @@ */ private boolean isPopupAction; - public JCPActionChangeMode(Controller2DHub hub, String key) + public JCPActionChangeMode(TestEditor editor, String key) { - this.hub = hub; + this.editor = editor; + this.hub = editor.get2DHub(); this.key = key; System.out.println("the key: " + key); if (key.equals("move")) { @@ -102,9 +104,15 @@ // Controller2DModel renderModel = jcpModel.getControllerModel(); // renderModel.setDrawElement(symbol); // renderModel.setDrawMode(Controller2DModel.DrawMode.ELEMENT); - // ((JButton)jcpPanel.lastAction.get(0)).setBackground(Color.LIGHT_GRAY); + + if (editor.getActionButton() != null) + editor.getActionButton().setBackground(Color.LIGHT_GRAY); + + // ((JButton)jcpPanel.lastAction.get(0)).setBackground(Color.LIGHT_GRAY); + editor.setActionButton((JComponent) e.getSource()); ((JComponent) e.getSource()).setBackground(Color.GRAY); - // jcpPanel.lastAction.set(0,(JComponent) e.getSource()); + + // jcpPanel.lastAction.set(0,(JComponent) e.getSource()); //FIXME: perhaps some 'default' controller should always stay hub.unRegisterAllControllerModule(); Modified: trunk/cdk/src/org/openscience/cdk/renderer/progz/SomeToolBar.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/renderer/progz/SomeToolBar.java 2007-09-17 04:20:08 UTC (rev 8940) +++ trunk/cdk/src/org/openscience/cdk/renderer/progz/SomeToolBar.java 2007-09-18 00:14:39 UTC (rev 8941) @@ -68,15 +68,16 @@ * *@return The toolbar value */ - public static JToolBar getToolbar(Controller2DHub hub, int lines) + public static JToolBar getToolbar(TestEditor editor, int lines) { + //Controller2DHub hub if (logger == null) { logger = new LoggingTool(SomeToolBar.class); } - JToolBar maintoolbar=(JToolBar)createToolbar(SwingConstants.HORIZONTAL, "toolbar", hub, lines, false); - JToolBar elementtoolbar=(JToolBar)createToolbar(SwingConstants.HORIZONTAL, "elementtoolbar", hub, lines*2, true); + JToolBar maintoolbar=(JToolBar)createToolbar(SwingConstants.HORIZONTAL, "toolbar", editor, lines, false); + JToolBar elementtoolbar=(JToolBar)createToolbar(SwingConstants.HORIZONTAL, "elementtoolbar", editor, lines*2, true); maintoolbar.add(elementtoolbar); return maintoolbar; } @@ -111,7 +112,7 @@ *@return JButton The JButton with already added ActionListener */ - static JButton createToolbarButton(String key, Controller2DHub hub, boolean elementtype) + static JButton createToolbarButton(String key, TestEditor editor, boolean elementtype) { JCPPropertyHandler jcpph = JCPPropertyHandler.getInstance(); JButton b = null; @@ -147,7 +148,7 @@ } //FIXME: make it choose the correct controller? System.out.println("astr: " + astr + " key: " + key); - JCPActionChangeMode a = new JCPActionChangeMode(hub, key); + JCPActionChangeMode a = new JCPActionChangeMode(editor, key); if (a != null) { b.setActionCommand(astr); @@ -175,7 +176,7 @@ //FIXME: make the correct actionlistener for the atom types? or whatever these are.... b=new JButton(key); - JCPActionChangeMode a = new JCPActionChangeMode(hub, key); + JCPActionChangeMode a = new JCPActionChangeMode(editor, key); b.addActionListener(a); b.setEnabled(a.isEnabled()); if(JCPLocalizationHandler.getInstance().getString("singleelementTooltip")!=null) @@ -204,7 +205,7 @@ *@param elementtype If true a special type of toolbar for element symbols will be created *@return Component The created toolbar */ - public static Component createToolbar(int orientation, String kind, Controller2DHub hub, int lines, boolean elementtype) + public static Component createToolbar(int orientation, String kind, TestEditor editor, int lines, boolean elementtype) { JToolBar toolbar2 = new JToolBar(orientation); String[] toolKeys = StringHelper.tokenize(getToolbarResourceString(kind)); @@ -244,7 +245,7 @@ toolbar2.add(box); box=new Box(BoxLayout.Y_AXIS); } - button = (JButton) createToolbarButton(toolKeys[i], hub, elementtype); + button = (JButton) createToolbarButton(toolKeys[i], editor, elementtype); /*if (toolKeys[i].equals("lasso")) { selectButton = button; Modified: trunk/cdk/src/org/openscience/cdk/renderer/progz/TestEditor.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/renderer/progz/TestEditor.java 2007-09-17 04:20:08 UTC (rev 8940) +++ trunk/cdk/src/org/openscience/cdk/renderer/progz/TestEditor.java 2007-09-18 00:14:39 UTC (rev 8941) @@ -70,7 +70,16 @@ protected IChemObjectBuilder builder; private Controller2DHub hub; - + public Controller2DHub get2DHub() { + return hub; + } + private JComponent lastActionButton; + public JComponent getActionButton() { + return lastActionButton; + } + public void setActionButton(JComponent actionButton) { + lastActionButton = actionButton; + } private TestEditor() { builder = DefaultChemObjectBuilder.getInstance(); @@ -106,7 +115,7 @@ painter.addMouseListener(relay); painter.addMouseMotionListener(relay); - JToolBar toolbar = SomeToolBar.getToolbar(hub, 1); + JToolBar toolbar = SomeToolBar.getToolbar(this, 1); // frame.add(toolbar); frame.add(toolbar, BorderLayout.NORTH); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |