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/09/18 09:36:37 UTC

svn commit: r289905 - in /xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12: ContentManager.java DefaultXBLManager.java SVG12BridgeContext.java

Author: cam
Date: Sun Sep 18 00:36:32 2005
New Revision: 289905

URL: http://svn.apache.org/viewcvs?rev=289905&view=rev
Log:
1. Fixed problem with binding custom elements deep in a tree selected
   with xbl:content.

Modified:
    xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/ContentManager.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/DefaultXBLManager.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12BridgeContext.java

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/ContentManager.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/ContentManager.java?rev=289905&r1=289904&r2=289905&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/ContentManager.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/ContentManager.java Sun Sep 18 00:36:32 2005
@@ -371,7 +371,7 @@
             added.addAll(newlySelectedNodes);
             added.removeAll(previouslySelectedNodes);
 
-            if (!first) {            
+            if (!first) {
                 xblManager.shadowTreeSelectedContentChanged(removed, added);
             }
         }

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/DefaultXBLManager.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/DefaultXBLManager.java?rev=289905&r1=289904&r2=289905&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/DefaultXBLManager.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/DefaultXBLManager.java Sun Sep 18 00:36:32 2005
@@ -634,9 +634,9 @@
                                       e.getLocalName());
             setActiveDefinition((BindableElement) e, defRec);
         } else {
-            for (Node n = e.getFirstChild();
-                    n != null;
-                    n = n.getNextSibling()) {
+            NodeList nl = getXblScopedChildNodes(e);
+            for (int i = 0; i < nl.getLength(); i++) {
+                Node n = nl.item(i);
                 if (n.getNodeType() == Node.ELEMENT_NODE) {
                     bind((Element) n);
                 }
@@ -813,10 +813,6 @@
      * that are within the same shadow scope.
      */
     public NodeList getXblScopedChildNodes(Node n) {
-        NodeList nl = getXblDefinitions(n);
-        if (nl.getLength() == 0) {
-            return n.getChildNodes();
-        }
         XBLRecord rec = getRecord(n);
         if (rec.scopedChildNodes == null) {
             rec.scopedChildNodes = new XblScopedChildNodes(rec);
@@ -1047,7 +1043,16 @@
         if (b != null) {
             Element s = getXblShadowTree(b);
             if (s != null) {
-                return (ContentManager) contentManagers.get(s);
+                ContentManager cm;
+                Document doc = b.getOwnerDocument();
+                if (doc != document) {
+                    DefaultXBLManager xm = (DefaultXBLManager)
+                        ((AbstractDocument) doc).getXBLManager();
+                    cm = (ContentManager) xm.contentManagers.get(s);
+                } else {
+                    cm = (ContentManager) contentManagers.get(s);
+                }
+                return cm;
             }
         }
         return null;

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12BridgeContext.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12BridgeContext.java?rev=289905&r1=289904&r2=289905&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12BridgeContext.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/svg12/SVG12BridgeContext.java Sun Sep 18 00:36:32 2005
@@ -32,6 +32,7 @@
 import org.apache.batik.dom.events.NodeEventTarget;
 import org.apache.batik.dom.svg.SVGOMDocument;
 import org.apache.batik.dom.svg12.XBLEventSupport;
+import org.apache.batik.dom.xbl.XBLManager;
 import org.apache.batik.script.Interpreter;
 import org.apache.batik.script.InterpreterPool;
 import org.apache.batik.util.SVGConstants;
@@ -169,9 +170,10 @@
      */
     public void removeBindingListener() {
         AbstractDocument doc = (AbstractDocument) document;
-        DefaultXBLManager xm = (DefaultXBLManager) doc.getXBLManager();
-        if (xm != null) {
-            xm.removeBindingListener(bindingListener);
+        XBLManager xm = doc.getXBLManager();
+        if (xm instanceof DefaultXBLManager) {
+            DefaultXBLManager dxm = (DefaultXBLManager) xm;
+            dxm.removeBindingListener(bindingListener);
         }
     }