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.