Author: nbelaevski
Date: 2007-09-09 16:18:05 -0400 (Sun, 09 Sep 2007)
New Revision: 2825
Added:
trunk/ui/treeModel/src/main/config/component/recursiveTreeNodesAdaptor.xml
trunk/ui/treeModel/src/main/config/component/treeNodesAdaptor.xml
trunk/ui/treeModel/src/main/java/org/richfaces/component/UIRecursiveTreeNodesAdaptor.java
trunk/ui/treeModel/src/main/java/org/richfaces/component/UITreeNodesAdaptor.java
Removed:
trunk/ui/treeModel/src/main/config/component/recursiveTreeNodes.xml
trunk/ui/treeModel/src/main/config/component/treeNodes.xml
trunk/ui/treeModel/src/main/java/org/richfaces/component/UIRecursiveTreeNodes.java
trunk/ui/treeModel/src/main/java/org/richfaces/component/UITreeNodes.java
Modified:
trunk/ui/treeModel/src/test/java/org/richfaces/component/TreeModelComponentTest.java
Log:
http://jira.jboss.com/jira/browse/RF-866
Deleted: trunk/ui/treeModel/src/main/config/component/recursiveTreeNodes.xml
===================================================================
--- trunk/ui/treeModel/src/main/config/component/recursiveTreeNodes.xml 2007-09-09
20:17:54 UTC (rev 2824)
+++ trunk/ui/treeModel/src/main/config/component/recursiveTreeNodes.xml 2007-09-09
20:18:05 UTC (rev 2825)
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN"
"https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
-<components>
- <component>
- <name>org.richfaces.RecursiveTreeNodes</name>
- <family>org.richfaces.RecursiveTreeNodes</family>
- <classname>org.richfaces.component.html.HtmlRecursiveTreeNodes</classname>
- <superclass>org.richfaces.component.UIRecursiveTreeNodes</superclass>
- <description>
- <![CDATA[
- ]]>
- </description>
- <!-- renderer generate="true" override="true">
- <name>org.richfaces.RecursiveTreeNodesRenderer</name>
- <template>org/richfaces/htmlRecursiveTreeNodes.jspx</template>
- </renderer -->
- <tag>
- <name>recursiveTreeNodes</name>
- <classname>org.richfaces.taglib.RecursiveTreeNodesTag</classname>
- <superclass>
- org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
- </superclass>
- </tag>
- <!--
- <taghandler>
- <classname>org.ajax4jsf.tag.TestHandler</classname>
- </taghandler>
- -->
- &ui_component_attributes;
- <!--
- <property>
- <name>param</name>
- <classname>java.lang.String</classname>
- <description>
- </description>
- <defaultvalue>"default"</defaultvalue>
- </property>
- -->
- <property>
- <name>var</name>
- <classname>java.lang.String</classname>
- <description>
- A request-scope attribute via which the data object for the current collection element
will be used when iterating
- </description>
- </property>
- <property elonly="true">
- <name>nodes</name>
- <classname>java.lang.Object</classname>
- <description>
- Defines collection to use at the other (non-top) levels of iteration
- </description>
- </property>
- <property elonly="true">
- <name>roots</name>
- <classname>java.lang.Object</classname>
- <description>
- Defines collection to use at the top of iteration
- </description>
- </property>
- <property>
- <name>included</name>
- <classname>boolean</classname>
- <description>
- This boolean expression is used to define which elements of both collections are
processed
- </description>
- <defaultvalue>true</defaultvalue>
- </property>
- <property>
- <name>includedRoot</name>
- <classname>boolean</classname>
- <description>
- This boolean expression is used to define which elements are processed appling to
"roots" collection
- </description>
- <defaultvalue>true</defaultvalue>
- </property>
- <property>
- <name>includedNode</name>
- <classname>boolean</classname>
- <description>
- This boolean expression is used to define which elements are processed
- </description>
- <defaultvalue>true</defaultvalue>
- </property>
- </component>
-</components>
Copied: trunk/ui/treeModel/src/main/config/component/recursiveTreeNodesAdaptor.xml (from
rev 2811, trunk/ui/treeModel/src/main/config/component/recursiveTreeNodes.xml)
===================================================================
--- trunk/ui/treeModel/src/main/config/component/recursiveTreeNodesAdaptor.xml
(rev 0)
+++ trunk/ui/treeModel/src/main/config/component/recursiveTreeNodesAdaptor.xml 2007-09-09
20:18:05 UTC (rev 2825)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN"
"https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
+<components>
+ <component>
+ <name>org.richfaces.RecursiveTreeNodesAdaptor</name>
+ <family>org.richfaces.RecursiveTreeNodesAdaptor</family>
+ <classname>org.richfaces.component.html.HtmlRecursiveTreeNodesAdaptor</classname>
+ <superclass>org.richfaces.component.UIRecursiveTreeNodesAdaptor</superclass>
+ <description>
+ <![CDATA[
+ ]]>
+ </description>
+ <tag>
+ <name>recursiveTreeNodesAdaptor</name>
+ <classname>org.richfaces.taglib.RecursiveTreeNodesAdaptorTag</classname>
+ <superclass>
+ org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
+ </superclass>
+ </tag>
+ <!--
+ <taghandler>
+ <classname>org.ajax4jsf.tag.TestHandler</classname>
+ </taghandler>
+ -->
+ &ui_component_attributes;
+ <!--
+ <property>
+ <name>param</name>
+ <classname>java.lang.String</classname>
+ <description>
+ </description>
+ <defaultvalue>"default"</defaultvalue>
+ </property>
+ -->
+ <property>
+ <name>var</name>
+ <classname>java.lang.String</classname>
+ <description>
+ A request-scope attribute via which the data object for the current collection element
will be used when iterating
+ </description>
+ </property>
+ <property elonly="true">
+ <name>nodes</name>
+ <classname>java.lang.Object</classname>
+ <description>
+ Defines collection to use at the other (non-top) levels of iteration
+ </description>
+ </property>
+ <property elonly="true">
+ <name>roots</name>
+ <classname>java.lang.Object</classname>
+ <description>
+ Defines collection to use at the top of iteration
+ </description>
+ </property>
+ <property>
+ <name>included</name>
+ <classname>boolean</classname>
+ <description>
+ This boolean expression is used to define which elements of both collections are
processed
+ </description>
+ <defaultvalue>true</defaultvalue>
+ </property>
+ <property>
+ <name>includedRoot</name>
+ <classname>boolean</classname>
+ <description>
+ This boolean expression is used to define which elements are processed appling to
"roots" collection
+ </description>
+ <defaultvalue>true</defaultvalue>
+ </property>
+ <property>
+ <name>includedNode</name>
+ <classname>boolean</classname>
+ <description>
+ This boolean expression is used to define which elements are processed
+ </description>
+ <defaultvalue>true</defaultvalue>
+ </property>
+ </component>
+</components>
Deleted: trunk/ui/treeModel/src/main/config/component/treeNodes.xml
===================================================================
--- trunk/ui/treeModel/src/main/config/component/treeNodes.xml 2007-09-09 20:17:54 UTC
(rev 2824)
+++ trunk/ui/treeModel/src/main/config/component/treeNodes.xml 2007-09-09 20:18:05 UTC
(rev 2825)
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN"
"https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
-<components>
- <component>
- <name>org.richfaces.TreeNodes</name>
- <family>org.richfaces.TreeNodes</family>
- <classname>org.richfaces.component.html.HtmlTreeNodes</classname>
- <superclass>org.richfaces.component.UITreeNodes</superclass>
- <description>
- <![CDATA[
- ]]>
- </description>
- <!-- renderer generate="false" override="true">
- <name>org.richfaces.TreeNodesRenderer</name>
- <template>org/richfaces/htmlTreeNodes.jspx</template>
- </renderer -->
- <tag>
- <name>treeNodes</name>
- <classname>org.richfaces.taglib.TreeNodesTag</classname>
- <superclass>
- org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
- </superclass>
- </tag>
- <!--
- <taghandler>
- <classname>org.ajax4jsf.tag.TestHandler</classname>
- </taghandler>
- -->
- &ui_component_attributes;
- <!--
- <property>
- <name>param</name>
- <classname>java.lang.String</classname>
- <description>
- </description>
- <defaultvalue>"default"</defaultvalue>
- </property>
- -->
- <property>
- <name>var</name>
- <classname>java.lang.String</classname>
- <description>
- A request-scope attribute via which the data object for the current collection element
will be used when iterating
- </description>
- </property>
- <property elonly="true">
- <name>nodes</name>
- <classname>java.lang.Object</classname>
- <description>
- Defines collection to use at the other (non-top) levels of iteration
- </description>
- </property>
- <property>
- <name>includedNode</name>
- <classname>boolean</classname>
- <description>
- This boolean expression is used to define which elements are processed
- </description>
- <defaultvalue>true</defaultvalue>
- </property>
- </component>
-</components>
Copied: trunk/ui/treeModel/src/main/config/component/treeNodesAdaptor.xml (from rev 2811,
trunk/ui/treeModel/src/main/config/component/treeNodes.xml)
===================================================================
--- trunk/ui/treeModel/src/main/config/component/treeNodesAdaptor.xml
(rev 0)
+++ trunk/ui/treeModel/src/main/config/component/treeNodesAdaptor.xml 2007-09-09 20:18:05
UTC (rev 2825)
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN"
"https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
+<components>
+ <component>
+ <name>org.richfaces.TreeNodesAdaptor</name>
+ <family>org.richfaces.TreeNodesAdaptor</family>
+ <classname>org.richfaces.component.html.HtmlTreeNodesAdaptor</classname>
+ <superclass>org.richfaces.component.UITreeNodesAdaptor</superclass>
+ <description>
+ <![CDATA[
+ ]]>
+ </description>
+ <tag>
+ <name>treeNodesAdaptor</name>
+ <classname>org.richfaces.taglib.TreeNodesAdaptorTag</classname>
+ <superclass>
+ org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
+ </superclass>
+ </tag>
+ <!--
+ <taghandler>
+ <classname>org.ajax4jsf.tag.TestHandler</classname>
+ </taghandler>
+ -->
+ &ui_component_attributes;
+ <!--
+ <property>
+ <name>param</name>
+ <classname>java.lang.String</classname>
+ <description>
+ </description>
+ <defaultvalue>"default"</defaultvalue>
+ </property>
+ -->
+ <property>
+ <name>var</name>
+ <classname>java.lang.String</classname>
+ <description>
+ A request-scope attribute via which the data object for the current collection element
will be used when iterating
+ </description>
+ </property>
+ <property elonly="true">
+ <name>nodes</name>
+ <classname>java.lang.Object</classname>
+ <description>
+ Defines collection to use at the other (non-top) levels of iteration
+ </description>
+ </property>
+ <property>
+ <name>includedNode</name>
+ <classname>boolean</classname>
+ <description>
+ This boolean expression is used to define which elements are processed
+ </description>
+ <defaultvalue>true</defaultvalue>
+ </property>
+ </component>
+</components>
Deleted:
trunk/ui/treeModel/src/main/java/org/richfaces/component/UIRecursiveTreeNodes.java
===================================================================
---
trunk/ui/treeModel/src/main/java/org/richfaces/component/UIRecursiveTreeNodes.java 2007-09-09
20:17:54 UTC (rev 2824)
+++
trunk/ui/treeModel/src/main/java/org/richfaces/component/UIRecursiveTreeNodes.java 2007-09-09
20:18:05 UTC (rev 2825)
@@ -1,86 +0,0 @@
-/**
- *
- */
-
-package org.richfaces.component;
-
-import java.util.Iterator;
-
-import org.apache.commons.collections.iterators.IteratorChain;
-import org.richfaces.model.StackingTreeModel;
-import org.richfaces.model.StackingTreeModelDataProvider;
-import org.richfaces.model.VisualStackingTreeModel;
-
-
-/**
- * JSF component class
- *
- */
-public abstract class UIRecursiveTreeNodes extends UITreeNodes {
-
- public static final String COMPONENT_TYPE =
"org.richfaces.RecursiveTreeNodes";
-
- public static final String COMPONENT_FAMILY =
"org.richfaces.RecursiveTreeNodes";
-
- public abstract Object getRoots();
- public abstract void setRoots(Object roots);
-
- public abstract boolean isIncluded();
- public abstract void setIncluded(boolean active);
-
- public abstract boolean isIncludedRoot();
- public abstract void setIncludedRoot(boolean active);
-
- protected boolean includeNode() {
- return isIncluded() && isIncludedRoot();
- }
-
- public Object getData() {
- return getRoots();
- }
-
- public abstract String getVar();
- public abstract void setVar(String var);
-
- public StackingTreeModel getStackingModel() {
- StackingTreeModel stackingModel = super.getStackingModel();
-
- StackingTreeModel recursiveModel = new VisualStackingTreeModel(getId(), getVar(), new
StackingTreeModelDataProvider() {
-
- public Object getData() {
- return UIRecursiveTreeNodes.this.getNodes();
- }
-
- }, UIRecursiveTreeNodes.this) {
-
- public StackingTreeModel getModelById(String id) {
- StackingTreeModel model = super.getModelById(id);
- if (model == null) {
- model = this.getParent().getModelById(id);
- }
-
- return model;
- }
-
- public Iterator getModelsIterator() {
- IteratorChain chain = new IteratorChain();
- chain.addIterator(super.getModelsIterator());
- chain.addIterator(this.getParent().getModelsIterator());
-
- return chain;
- }
-
- protected boolean isActive() {
- return UIRecursiveTreeNodes.this.isRendered();
- }
-
- protected boolean isActiveData() {
- return UIRecursiveTreeNodes.this.isIncluded() &&
UIRecursiveTreeNodes.this.isIncludedNode();
- }
- };
- stackingModel.addStackingModel(recursiveModel);
-
- return stackingModel;
- }
-
-}
Copied:
trunk/ui/treeModel/src/main/java/org/richfaces/component/UIRecursiveTreeNodesAdaptor.java
(from rev 2811,
trunk/ui/treeModel/src/main/java/org/richfaces/component/UIRecursiveTreeNodes.java)
===================================================================
---
trunk/ui/treeModel/src/main/java/org/richfaces/component/UIRecursiveTreeNodesAdaptor.java
(rev 0)
+++
trunk/ui/treeModel/src/main/java/org/richfaces/component/UIRecursiveTreeNodesAdaptor.java 2007-09-09
20:18:05 UTC (rev 2825)
@@ -0,0 +1,86 @@
+/**
+ *
+ */
+
+package org.richfaces.component;
+
+import java.util.Iterator;
+
+import org.apache.commons.collections.iterators.IteratorChain;
+import org.richfaces.model.StackingTreeModel;
+import org.richfaces.model.StackingTreeModelDataProvider;
+import org.richfaces.model.VisualStackingTreeModel;
+
+
+/**
+ * JSF component class
+ *
+ */
+public abstract class UIRecursiveTreeNodesAdaptor extends UITreeNodesAdaptor {
+
+ public static final String COMPONENT_TYPE =
"org.richfaces.RecursiveTreeNodesAdaptor";
+
+ public static final String COMPONENT_FAMILY =
"org.richfaces.RecursiveTreeNodesAdaptor";
+
+ public abstract Object getRoots();
+ public abstract void setRoots(Object roots);
+
+ public abstract boolean isIncluded();
+ public abstract void setIncluded(boolean active);
+
+ public abstract boolean isIncludedRoot();
+ public abstract void setIncludedRoot(boolean active);
+
+ protected boolean includeNode() {
+ return isIncluded() && isIncludedRoot();
+ }
+
+ public Object getData() {
+ return getRoots();
+ }
+
+ public abstract String getVar();
+ public abstract void setVar(String var);
+
+ public StackingTreeModel getStackingModel() {
+ StackingTreeModel stackingModel = super.getStackingModel();
+
+ StackingTreeModel recursiveModel = new VisualStackingTreeModel(getId(), getVar(), new
StackingTreeModelDataProvider() {
+
+ public Object getData() {
+ return UIRecursiveTreeNodesAdaptor.this.getNodes();
+ }
+
+ }, UIRecursiveTreeNodesAdaptor.this) {
+
+ public StackingTreeModel getModelById(String id) {
+ StackingTreeModel model = super.getModelById(id);
+ if (model == null) {
+ model = this.getParent().getModelById(id);
+ }
+
+ return model;
+ }
+
+ public Iterator getModelsIterator() {
+ IteratorChain chain = new IteratorChain();
+ chain.addIterator(super.getModelsIterator());
+ chain.addIterator(this.getParent().getModelsIterator());
+
+ return chain;
+ }
+
+ protected boolean isActive() {
+ return UIRecursiveTreeNodesAdaptor.this.isRendered();
+ }
+
+ protected boolean isActiveData() {
+ return UIRecursiveTreeNodesAdaptor.this.isIncluded() &&
UIRecursiveTreeNodesAdaptor.this.isIncludedNode();
+ }
+ };
+ stackingModel.addStackingModel(recursiveModel);
+
+ return stackingModel;
+ }
+
+}
Deleted: trunk/ui/treeModel/src/main/java/org/richfaces/component/UITreeNodes.java
===================================================================
--- trunk/ui/treeModel/src/main/java/org/richfaces/component/UITreeNodes.java 2007-09-09
20:17:54 UTC (rev 2824)
+++ trunk/ui/treeModel/src/main/java/org/richfaces/component/UITreeNodes.java 2007-09-09
20:18:05 UTC (rev 2825)
@@ -1,52 +0,0 @@
-/**
- *
- */
-
-package org.richfaces.component;
-
-import org.richfaces.model.StackingTreeModel;
-import org.richfaces.model.StackingTreeModelDataProvider;
-import org.richfaces.model.StackingTreeModelProvider;
-import org.richfaces.model.VisualStackingTreeModel;
-
-
-/**
- * JSF component class
- *
- */
-public abstract class UITreeNodes extends StackingTreeModelProvider {
-
- public static final String COMPONENT_TYPE = "org.richfaces.TreeNodes";
-
- public static final String COMPONENT_FAMILY = "org.richfaces.TreeNodes";
-
- public abstract String getVar();
- public abstract void setVar(String var);
-
- public abstract boolean isIncludedNode();
- public abstract void setIncludedNode(boolean includeNode);
-
- protected boolean includeNode() {
- return isIncludedNode();
- }
-
- protected StackingTreeModel createStackingTreeModel() {
- StackingTreeModel treeModel = new VisualStackingTreeModel(getId(), getVar(), new
StackingTreeModelDataProvider() {
-
- public Object getData() {
- return UITreeNodes.this.getData();
- }
-
- }, UITreeNodes.this) {
- protected boolean isActive() {
- return UITreeNodes.this.isRendered();
- }
-
- protected boolean isActiveData() {
- return UITreeNodes.this.includeNode();
- }
- };
-
- return treeModel;
- }
-}
Copied: trunk/ui/treeModel/src/main/java/org/richfaces/component/UITreeNodesAdaptor.java
(from rev 2811,
trunk/ui/treeModel/src/main/java/org/richfaces/component/UITreeNodes.java)
===================================================================
--- trunk/ui/treeModel/src/main/java/org/richfaces/component/UITreeNodesAdaptor.java
(rev 0)
+++
trunk/ui/treeModel/src/main/java/org/richfaces/component/UITreeNodesAdaptor.java 2007-09-09
20:18:05 UTC (rev 2825)
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+
+package org.richfaces.component;
+
+import org.richfaces.model.StackingTreeModel;
+import org.richfaces.model.StackingTreeModelDataProvider;
+import org.richfaces.model.StackingTreeModelProvider;
+import org.richfaces.model.VisualStackingTreeModel;
+
+
+/**
+ * JSF component class
+ *
+ */
+public abstract class UITreeNodesAdaptor extends StackingTreeModelProvider {
+
+ public static final String COMPONENT_TYPE = "org.richfaces.TreeNodesAdaptor";
+
+ public static final String COMPONENT_FAMILY =
"org.richfaces.TreeNodesAdaptor";
+
+ public abstract String getVar();
+ public abstract void setVar(String var);
+
+ public abstract boolean isIncludedNode();
+ public abstract void setIncludedNode(boolean includeNode);
+
+ protected boolean includeNode() {
+ return isIncludedNode();
+ }
+
+ protected StackingTreeModel createStackingTreeModel() {
+ StackingTreeModel treeModel = new VisualStackingTreeModel(getId(), getVar(), new
StackingTreeModelDataProvider() {
+
+ public Object getData() {
+ return UITreeNodesAdaptor.this.getData();
+ }
+
+ }, UITreeNodesAdaptor.this) {
+ protected boolean isActive() {
+ return UITreeNodesAdaptor.this.isRendered();
+ }
+
+ protected boolean isActiveData() {
+ return UITreeNodesAdaptor.this.includeNode();
+ }
+ };
+
+ return treeModel;
+ }
+}
Modified:
trunk/ui/treeModel/src/test/java/org/richfaces/component/TreeModelComponentTest.java
===================================================================
---
trunk/ui/treeModel/src/test/java/org/richfaces/component/TreeModelComponentTest.java 2007-09-09
20:17:54 UTC (rev 2824)
+++
trunk/ui/treeModel/src/test/java/org/richfaces/component/TreeModelComponentTest.java 2007-09-09
20:18:05 UTC (rev 2825)
@@ -128,7 +128,7 @@
tree.setId("tree");
form.getChildren().add(tree);
- UITreeNodes project = (UITreeNodes)
application.createComponent(UITreeNodes.COMPONENT_TYPE);
+ UITreeNodesAdaptor project = (UITreeNodesAdaptor)
application.createComponent(UITreeNodesAdaptor.COMPONENT_TYPE);
project.setVar("project");
project.setValueBinding("nodes",
application.createValueBinding("#{nodes}"));
project.getChildren().add(createOutput("#{XPathStringMap['$project/@id']}"));
@@ -136,7 +136,7 @@
tree.getChildren().add(project);
- UIRecursiveTreeNodes directories = (UIRecursiveTreeNodes)
application.createComponent(UIRecursiveTreeNodes.COMPONENT_TYPE);
+ UIRecursiveTreeNodesAdaptor directories = (UIRecursiveTreeNodesAdaptor)
application.createComponent(UIRecursiveTreeNodesAdaptor.COMPONENT_TYPE);
directories.setVar("dir");
directories.setValueBinding("roots",
application.createValueBinding("#{XPathMap['$project/directory']}"));
directories.setValueBinding("nodes",
application.createValueBinding("#{XPathMap['$dir/directory']}"));
@@ -145,7 +145,7 @@
project.getChildren().add(directories);
- UITreeNodes files = (UITreeNodes)
application.createComponent(UITreeNodes.COMPONENT_TYPE);
+ UITreeNodesAdaptor files = (UITreeNodesAdaptor)
application.createComponent(UITreeNodesAdaptor.COMPONENT_TYPE);
files.setVar("file");
files.setValueBinding("nodes",
application.createValueBinding("#{XPathMap['$dir/file']}"));
files.getChildren().add(createOutput("#{XPathStringMap['$file/@id']}"));
@@ -153,7 +153,7 @@
directories.getChildren().add(files);
- UIRecursiveTreeNodes archives = (UIRecursiveTreeNodes)
application.createComponent(UIRecursiveTreeNodes.COMPONENT_TYPE);
+ UIRecursiveTreeNodesAdaptor archives = (UIRecursiveTreeNodesAdaptor)
application.createComponent(UIRecursiveTreeNodesAdaptor.COMPONENT_TYPE);
archives.setVar("archiveEntry");
archives.setValueBinding("roots",
application.createValueBinding("#{XPathMap['$dir/archive']}"));
archives.setValueBinding("nodes",
application.createValueBinding("#{XPathMap['$archiveEntry/archiveEntry']}"));