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);
}
}