The <rich:treeNodesAdaptor> provides the possibility to define data models and create representations for them.
Allows to define combined data models
Possibility to define nodes for processing via attributes
Table 6.484. rich : treeNodesAdaptor attributes
Attribute Name | Description |
---|---|
binding | The attribute takes a value-binding expression for a component property of a backing bean |
id | Every component may have a unique id that is automatically created if omitted |
includedNode | This boolean expression is used to define which elements are processed |
nodes | Defines collection to use at the other (non-top) levels of iteration |
rendered | If "false", this component is not rendered |
var | A request-scope attribute via which the data object for the current collection element will be used when iterating |
Table 6.485. Component identification parameters
Name | Value |
---|---|
component-type | org.richfaces.TreeNodesAdaptor |
component-class | org.richfaces.component.html.HtmlTreeNodesAdaptor |
component-family | org.richfaces.TreeNodesAdaptor |
tag-class | org.richfaces.taglib.TreeNodesAdaptorTag |
Example:
...
<rich:treeNodesAdaptor var="issue" nodes="#{model.issues}">
<rich:treeNode>
<h:commandLink action="#{project.click}" value="Project: #{project.name}" />
</rich:treeNode>
...
<!-- Others nodes -->
...
</rich:treeNodesAdaptor>
...
Example:
import org.richfaces.component.html.HtmlTreeNodesAdaptor;
...
HtmlTreeNodesAdaptor myTreeNodesAdaptor = new HtmlTreeNodesAdaptor();
...
The <rich:treeNodesAdaptor> component has a "nodes" attribute that defines a collection of elements to iterate through.
Collections are allowed to include lists, arrays, maps, XML NodeList and NamedNodeMap either as a single object.
The "var" attribute is used to access to the current collection element.
The <rich:treeNodesAdaptor> component can be nested without any limitations. See the following example.
Example:
...
<rich:tree adviseNodeOpened="#{treeModelBean.adviseNodeOpened}" switchType="client">
<rich:treeNodesAdaptor id="project" nodes="#{loaderBean.projects}" var="project">
<rich:treeNode>
<h:commandLink action="#{project.click}" value="Project: #{project.name}" />
</rich:treeNode>
<rich:treeNodesAdaptor id="srcDir" var="srcDir" nodes="#{project.srcDirs}">
<rich:treeNode>
<h:commandLink action="#{srcDir.click}" value="Source directory: #{srcDir.name}" />
</rich:treeNode>
<rich:treeNodesAdaptor id="pkg" var="pkg" nodes="#{srcDir.packages}">
<rich:treeNode>
<h:commandLink action="#{pkg.click}" value="Package: #{pkg.name}" />
</rich:treeNode>
<rich:treeNodesAdaptor id="class" var="class" nodes="#{pkg.classes}">
<rich:treeNode>
<h:commandLink action="#{class.click}" value="Class: #{class.name}" />
</rich:treeNode>
</rich:treeNodesAdaptor>
</rich:treeNodesAdaptor>
</rich:treeNodesAdaptor>
</rich:treeNodesAdaptor>
</rich:tree>
...
Here you can see the example of <rich:treeNodesAdaptor > usage and sources for the given example.