You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by ca...@apache.org on 2005/10/15 06:35:55 UTC

svn commit: r321289 - in /xmlgraphics/batik/trunk/sources/org/apache/batik/bridge: ScriptingEnvironment.java svg12/SVG12ScriptingEnvironment.java

Author: cam
Date: Fri Oct 14 21:35:49 2005
New Revision: 321289

URL: http://svn.apache.org/viewcvs?rev=321289&view=rev
Log:
1. Fixed bug where shadow tree mutations cause 'handler' element
   event handlers to be registered more than once.

Modified:
    xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/ScriptingEnvironment.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12ScriptingEnvironment.java

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/ScriptingEnvironment.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/ScriptingEnvironment.java?rev=321289&r1=321288&r2=321289&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/ScriptingEnvironment.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/ScriptingEnvironment.java Fri Oct 14 21:35:49 2005
@@ -155,20 +155,17 @@
     /**
      * The DOMNodeInserted event listener.
      */
-    protected EventListener domNodeInsertedListener 
-        = new DOMNodeInsertedListener();
+    protected EventListener domNodeInsertedListener;
 
     /**
      * The DOMNodeRemoved event listener.
      */
-    protected EventListener domNodeRemovedListener
-        = new DOMNodeRemovedListener();
+    protected EventListener domNodeRemovedListener;
 
     /**
      * The DOMAttrModified event listener.
      */
-    protected EventListener domAttrModifiedListener 
-        = new DOMAttrModifiedListener();
+    protected EventListener domAttrModifiedListener;
 
     /**
      * The SVGAbort event listener.
@@ -354,6 +351,9 @@
      * Adds DOM listeners to the document.
      */
     protected void addDocumentListeners() {
+        domNodeInsertedListener = new DOMNodeInsertedListener();
+        domNodeRemovedListener = new DOMNodeRemovedListener();
+        domAttrModifiedListener = new DOMAttrModifiedListener();
         NodeEventTarget et = (NodeEventTarget) document;
         et.addEventListenerNS
             (XMLConstants.XML_EVENTS_NAMESPACE_URI, "DOMNodeInserted",

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12ScriptingEnvironment.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12ScriptingEnvironment.java?rev=321289&r1=321288&r2=321289&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12ScriptingEnvironment.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12ScriptingEnvironment.java Fri Oct 14 21:35:49 2005
@@ -25,6 +25,7 @@
 import org.apache.batik.bridge.svg12.SVG12BridgeContext;
 import org.apache.batik.dom.AbstractDocument;
 import org.apache.batik.dom.AbstractElement;
+import org.apache.batik.dom.events.EventSupport;
 import org.apache.batik.dom.svg12.SVGGlobal;
 import org.apache.batik.dom.svg12.XBLEventSupport;
 import org.apache.batik.dom.util.DOMUtilities;
@@ -76,6 +77,9 @@
      * Adds DOM listeners to the document.
      */
     protected void addDocumentListeners() {
+        domNodeInsertedListener = new DOMNodeInsertedListener();
+        domNodeRemovedListener = new DOMNodeRemovedListener();
+        domAttrModifiedListener = new DOMAttrModifiedListener();
         AbstractDocument doc = (AbstractDocument) document;
         XBLEventSupport es = (XBLEventSupport) doc.initializeEventSupport();
         es.addImplementationEventListenerNS
@@ -110,6 +114,33 @@
             (XMLConstants.XML_EVENTS_NAMESPACE_URI,
              "DOMAttrModified",
              domAttrModifiedListener, false);
+    }
+
+    /**
+     * The listener class for 'DOMNodeInserted' event.
+     */
+    protected class DOMNodeInsertedListener
+            extends ScriptingEnvironment.DOMNodeInsertedListener {
+        public void handleEvent(Event evt) {
+            super.handleEvent(EventSupport.getUltimateOriginalEvent(evt));
+        }
+    }
+
+    /**
+     * The listener class for 'DOMNodeRemoved' event.
+     */
+    protected class DOMNodeRemovedListener
+            extends ScriptingEnvironment.DOMNodeRemovedListener {
+        public void handleEvent(Event evt) {
+            super.handleEvent(EventSupport.getUltimateOriginalEvent(evt));
+        }
+    }
+
+    protected class DOMAttrModifiedListener
+            extends ScriptingEnvironment.DOMAttrModifiedListener {
+        public void handleEvent (Event evt) {
+            super.handleEvent(EventSupport.getUltimateOriginalEvent(evt));
+        }
     }
 
     /**