From: <eg...@us...> - 2006-04-10 14:22:53
|
Revision: 5907 Author: egonw Date: 2006-04-10 07:22:39 -0700 (Mon, 10 Apr 2006) ViewCVS: http://svn.sourceforge.net/cdk/?rev=5907&view=rev Log Message: ----------- Added IChemObject.set/getNotification() as discussed and agreed upon on the cdk-devel ML. Modified Paths: -------------- trunk/cdk/src/org/openscience/cdk/ChemObject.java trunk/cdk/src/org/openscience/cdk/debug/DebugChemObject.java trunk/cdk/src/org/openscience/cdk/interfaces/IChemObject.java trunk/cdk/src/org/openscience/cdk/io/cml/ChemFileCDO.java trunk/cdk/src/org/openscience/cdk/test/ChemObjectTest.java Modified: trunk/cdk/src/org/openscience/cdk/ChemObject.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/ChemObject.java 2006-04-10 13:36:01 UTC (rev 5906) +++ trunk/cdk/src/org/openscience/cdk/ChemObject.java 2006-04-10 14:22:39 UTC (rev 5907) @@ -165,7 +165,7 @@ * to that the registered listeners can react to it. */ public void notifyChanged() { - if (getListenerCount() > 0) { + if (getNotification() && getListenerCount() > 0) { Vector listeners = lazyChemObjectListeners(); for (int f = 0; f < listeners.size(); f++) { ((IChemObjectListener) listeners.elementAt(f)).stateChanged( @@ -457,6 +457,16 @@ return DefaultChemObjectBuilder.getInstance(); } + private boolean doNotification = true; + + public void setNotification(boolean bool) { + this.doNotification = bool; + } + + public boolean getNotification() { + return this.doNotification; + } + } Modified: trunk/cdk/src/org/openscience/cdk/debug/DebugChemObject.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/debug/DebugChemObject.java 2006-04-10 13:36:01 UTC (rev 5906) +++ trunk/cdk/src/org/openscience/cdk/debug/DebugChemObject.java 2006-04-10 14:22:39 UTC (rev 5907) @@ -137,4 +137,12 @@ return DebugChemObjectBuilder.getInstance(); } + public void setNotification(boolean bool) { + logger.debug("Setting use notification: ", bool); + super.setNotification(bool); + } + + public boolean getNotification() { + return super.getNotification(); + } } Modified: trunk/cdk/src/org/openscience/cdk/interfaces/IChemObject.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/interfaces/IChemObject.java 2006-04-10 13:36:01 UTC (rev 5906) +++ trunk/cdk/src/org/openscience/cdk/interfaces/IChemObject.java 2006-04-10 14:22:39 UTC (rev 5907) @@ -61,8 +61,22 @@ */ public void removeListener(IChemObjectListener col); + /** + * Set a flag to use or not use notification. By default it should be set + * to true. + * + * @param bool if true, then notification messages are sent. + */ + public void setNotification(boolean bool); /** + * Returns the flag that indicates wether notification messages are sent around. + * + * @return true if messages are sent. + */ + public boolean getNotification(); + + /** * This should be triggered by an method that changes the content of an object * to that the registered listeners can react to it. */ Modified: trunk/cdk/src/org/openscience/cdk/io/cml/ChemFileCDO.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/io/cml/ChemFileCDO.java 2006-04-10 13:36:01 UTC (rev 5906) +++ trunk/cdk/src/org/openscience/cdk/io/cml/ChemFileCDO.java 2006-04-10 14:22:39 UTC (rev 5907) @@ -589,5 +589,16 @@ public void setAromaticOrder(double aromaticOrder) { this.aromaticOrder = aromaticOrder; } + + private boolean doNotification = true; + + public void setNotification(boolean bool) { + this.doNotification = bool; + } + + public boolean getNotification() { + return this.doNotification; + } + } Modified: trunk/cdk/src/org/openscience/cdk/test/ChemObjectTest.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/test/ChemObjectTest.java 2006-04-10 13:36:01 UTC (rev 5906) +++ trunk/cdk/src/org/openscience/cdk/test/ChemObjectTest.java 2006-04-10 14:22:39 UTC (rev 5907) @@ -294,7 +294,36 @@ chemObject.setID("Changed"); assertTrue(listener.changed); } + + public void testSetNotification_boolean() { + IChemObject chemObject = builder.newChemObject(); + chemObject.setNotification(false); + assertFalse(chemObject.getNotification()); + } + public void testGetNotification() { + testSetNotification_boolean(); + } + public void testSetNotification_false() { + ChemObjectListenerImpl listener = new ChemObjectListenerImpl(); + IChemObject chemObject = builder.newChemObject(); + chemObject.addListener(listener); + chemObject.setNotification(false); + + chemObject.setID("Changed"); + assertFalse(listener.changed); + } + + public void testSetNotification_true() { + ChemObjectListenerImpl listener = new ChemObjectListenerImpl(); + IChemObject chemObject = builder.newChemObject(); + chemObject.addListener(listener); + chemObject.setNotification(true); + + chemObject.setID("Changed"); + assertTrue(listener.changed); + } + public void testNotifyChanged_IChemObjectChangeEvent() { ChemObjectListenerImpl listener = new ChemObjectListenerImpl(); IChemObject chemObject = builder.newChemObject(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |