tkormann 02/04/22 07:59:44 Modified: sources/org/apache/batik/bridge AbstractGraphicsNodeBridge.java BridgeContext.java BridgeUpdateHandler.java Log: - add a new global listener for DOMCharacterDataModified event - add a new method handleDOMCharacterDataModified on BridgeUpdateHandler that is automatically called on the enclosing SVG element. Revision Changes Path 1.22 +9 -2 xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java Index: AbstractGraphicsNodeBridge.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- AbstractGraphicsNodeBridge.java 15 Apr 2002 10:16:12 -0000 1.21 +++ AbstractGraphicsNodeBridge.java 22 Apr 2002 14:59:44 -0000 1.22 @@ -44,7 +44,7 @@ * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a> - * @version $Id: AbstractGraphicsNodeBridge.java,v 1.21 2002/04/15 10:16:12 hillion Exp $ + * @version $Id: AbstractGraphicsNodeBridge.java,v 1.22 2002/04/22 14:59:44 tkormann Exp $ */ public abstract class AbstractGraphicsNodeBridge extends AbstractSVGBridge implements SVGContext, @@ -184,6 +184,13 @@ } /** + * Invoked when an MutationEvent of type 'DOMCharacterDataModified' + * is fired. + */ + public void handleDOMCharacterDataModified(MutationEvent evt) { + } + + /** * Disposes this BridgeUpdateHandler and releases all resources. */ public void dispose() { @@ -202,7 +209,7 @@ BridgeUpdateHandler h = (BridgeUpdateHandler)elt.getSVGContext(); h.dispose(); } - for (Node n = node.getFirstChild(); n != null; n = n.getNextSibling()) { + for (Node n = node.getFirstChild(); n!=null; n = n.getNextSibling()) { disposeTree(n); } } 1.45 +42 -3 xml-batik/sources/org/apache/batik/bridge/BridgeContext.java Index: BridgeContext.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeContext.java,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- BridgeContext.java 17 Apr 2002 09:47:38 -0000 1.44 +++ BridgeContext.java 22 Apr 2002 14:59:44 -0000 1.45 @@ -66,7 +66,7 @@ * a SVG DOM tree such as the current viewport or the user agent. * * @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a> - * @version $Id: BridgeContext.java,v 1.44 2002/04/17 09:47:38 tkormann Exp $ + * @version $Id: BridgeContext.java,v 1.45 2002/04/22 14:59:44 tkormann Exp $ */ public class BridgeContext implements ErrorConstants, CSSContext { @@ -704,6 +704,11 @@ // dynamic support //////////////////////////////////////////////////////// /** + * The DOM EventListener to receive 'DOMCharacterDataModified' event. + */ + protected EventListener domCharacterDataModifiedListener; + + /** * The DOM EventListener to receive 'DOMAttrModified' event. */ protected EventListener domAttrModifiedEventListener; @@ -729,19 +734,29 @@ * properties and update the GVT tree in response. */ public void addDOMListeners() { - domAttrModifiedEventListener = new DOMAttrModifiedEventListener(); EventTarget evtTarget = (EventTarget)document; + + domAttrModifiedEventListener = new DOMAttrModifiedEventListener(); evtTarget.addEventListener("DOMAttrModified", domAttrModifiedEventListener, true); + domNodeInsertedEventListener = new DOMNodeInsertedEventListener(); evtTarget.addEventListener("DOMNodeInserted", domNodeInsertedEventListener, true); + domNodeRemovedEventListener = new DOMNodeRemovedEventListener(); evtTarget.addEventListener("DOMNodeRemoved", domNodeRemovedEventListener, true); + + domCharacterDataModifiedListener = + new DOMCharacterDataModifiedListener(); + evtTarget.addEventListener("DOMCharacterDataModified", + domCharacterDataModifiedListener, + true); + SVGOMDocument svgDocument = (SVGOMDocument)document; CSSEngine cssEngine = svgDocument.getCSSEngine(); cssPropertiesChangedListener = new CSSPropertiesChangedListener(); @@ -762,6 +777,9 @@ evtTarget.removeEventListener("DOMNodeRemoved", domNodeRemovedEventListener, true); + evtTarget.removeEventListener("DOMCharacterDataModified", + domCharacterDataModifiedListener, + true); SVGOMDocument svgDocument = (SVGOMDocument)document; CSSEngine cssEngine = svgDocument.getCSSEngine(); @@ -814,7 +832,8 @@ */ public void handleEvent(Event evt) { MutationEvent me = (MutationEvent)evt; - BridgeUpdateHandler h = getBridgeUpdateHandler(me.getRelatedNode()); + BridgeUpdateHandler h = + getBridgeUpdateHandler(me.getRelatedNode()); if (h != null) { h.handleDOMNodeInsertedEvent(me); } @@ -834,6 +853,26 @@ BridgeUpdateHandler h = getBridgeUpdateHandler(node); if (h != null) { h.handleDOMNodeRemovedEvent((MutationEvent)evt); + } + } + } + + /** + * The DOM EventListener invoked when a character data is changed. + */ + protected class DOMCharacterDataModifiedListener implements EventListener { + + /** + * Handles 'DOMNodeRemoved' event type. + */ + public void handleEvent(Event evt) { + Node node = (Node)evt.getTarget(); + while (node != null && !(node instanceof SVGOMElement)) { + node = node.getParentNode(); + } + BridgeUpdateHandler h = getBridgeUpdateHandler(node); + if (h != null) { + h.handleDOMCharacterDataModified((MutationEvent)evt); } } } 1.5 +7 -1 xml-batik/sources/org/apache/batik/bridge/BridgeUpdateHandler.java Index: BridgeUpdateHandler.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeUpdateHandler.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- BridgeUpdateHandler.java 21 Mar 2002 11:04:56 -0000 1.4 +++ BridgeUpdateHandler.java 22 Apr 2002 14:59:44 -0000 1.5 @@ -16,7 +16,7 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a> * @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a> - * @version $Id: BridgeUpdateHandler.java,v 1.4 2002/03/21 11:04:56 tkormann Exp $ + * @version $Id: BridgeUpdateHandler.java,v 1.5 2002/04/22 14:59:44 tkormann Exp $ */ public interface BridgeUpdateHandler { @@ -34,6 +34,12 @@ * Invoked when an MutationEvent of type 'DOMNodeRemoved' is fired. */ void handleDOMNodeRemovedEvent(MutationEvent evt); + + /** + * Invoked when an MutationEvent of type 'DOMCharacterDataModified' + * is fired. + */ + void handleDOMCharacterDataModified(MutationEvent evt); /** * Invoked when an CSSEngineEvent is fired.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]