You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ti...@apache.org on 2004/09/10 20:19:10 UTC

svn commit: rev 43680 - cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/binding

Author: tim
Date: Fri Sep 10 11:19:09 2004
New Revision: 43680

Modified:
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/binding/TempRepeaterJXPathBinding.java
Log:
Fix TempRepeaterBinding's virtual-rows to not forget namespaces.


Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/binding/TempRepeaterJXPathBinding.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/binding/TempRepeaterJXPathBinding.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/binding/TempRepeaterJXPathBinding.java	Fri Sep 10 11:19:09 2004
@@ -33,7 +33,7 @@
  * For a smarter binding that avoids deletion and recreation, consider
  * {@link org.apache.cocoon.forms.binding.RepeaterJXPathBinding}
  *
- * @version CVS $Id: TempRepeaterJXPathBinding.java,v 1.5 2004/05/07 13:42:09 mpo Exp $
+ * @version CVS $Id$
  */
 public class TempRepeaterJXPathBinding extends JXPathBindingBase {
 
@@ -134,9 +134,13 @@
                 if (virtualRows == true) {
                     Node repeaterNode = (Node)repeaterPointer.getNode();
                     Node virtualNode = repeaterNode.getOwnerDocument().createElementNS(null, "virtual");
-                    Node clone = ((Node)rowPointer.getNode()).cloneNode(true);
+                    Node node = (Node)rowPointer.getNode();
+                    Node clone = node.cloneNode(true);
+                    Node docElement = node.getOwnerDocument().getDocumentElement().cloneNode(false);
                     virtualNode.appendChild(clone);
-                    rowContext = JXPathContext.newContext(repeaterContext, virtualNode);
+                    docElement.appendChild(virtualNode);
+                    rowContext = JXPathContext.newContext(repeaterContext, docElement);
+                    rowContext = rowContext.getRelativeContext(rowContext.getPointer("virtual"));
                 }
 
                 // Finally, perform the load row binding.