You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by tk...@apache.org on 2002/04/22 16:59:45 UTC
cvs commit: xml-batik/sources/org/apache/batik/bridge AbstractGraphicsNodeBridge.java BridgeContext.java BridgeUpdateHandler.java
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:tkormann@apache.org">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:Thierry.Kormann@sophia.inria.fr">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:vincent.hardy@apache.org">Vincent Hardy</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">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: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org