recursiveTreeNodesAdaptor rich:recursiveTreeNodesAdaptor HtmlrecursiveTreeNodesAdaptor

Component identification parameters

Name | Value
--- | ---
component-type | org.richfaces.RecursiveTreeNodesAdaptor
component-class | org.richfaces.component.html.HtmlRecursiveTreeNodesAdaptor
component-family | org.richfaces.RecursiveTreeNodesAdaptor
tag-class | org.richfaces.taglib.RecursiveTreeNodesAdaptorTag

## Creating the Component with a Page Tag

To create the simplest variant of rich:recursiveTreeNodesAdaptor on a page, use the following syntax:

Example:

    ...
    	<rich:recursiveTreeNodesAdaptor var="issue" root="#{project.root}" nodes="#{model.issues}">
    		...
    		<rich:treeNode>
    			 <!-- node content -->
    		</rich:treeNode>

    		<!-- Others nodes -->
    		...
    	</rich:recursiveTreeNodesAdaptor>
    ...

## Creating the Component Dynamically Using Java

Example:

    import org.richfaces.component.html.HtmlRecursiveTreeNodesAdaptor;
    ...
    HtmlRecursiveTreeNodesAdaptor myRecursiveTreeNodesAdaptor = new HtmlRecursiveTreeNodesAdaptor();
    ...

## Details of Usage

The typical variant of using:

    ...
    <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:recursiveTreeNodesAdaptor id="dir" var="dir" root="#{project.dirs}" nodes="#{dir.directories}">

    			<rich:treeNode>
    				<h:commandLink action="#{dir.click}" value="Directory: #{dir.name}" />
    			</rich:treeNode>

    			<rich:treeNodesAdaptor id="file" var="file" nodes="#{dir.files}">
    				<rich:treeNode>
    					<h:commandLink action="#{file.click}" value="File: #{file.name}" />
    				</rich:treeNode>
    			</rich:treeNodesAdaptor>

    			<rich:treeNodesAdaptor id="file1" var="file" nodes="#{dir.files}">
    				<rich:treeNode>
    					<h:commandLink action="#{file.click}" value="File1: #{file.name}" />
    				</rich:treeNode>
    			</rich:treeNodesAdaptor>

    			<rich:recursiveTreeNodesAdaptor id="archiveEntry" var="archiveEntry"
    				roots="#{dir.files}" nodes="#{archiveEntry.archiveEntries}"
    				includedRoot="#{archiveEntry.class.simpleName == 'ArchiveFile'}"
    				includedNode="#{archiveEntry.class.simpleName == 'ArchiveEntry'}">

    				<rich:treeNode id="archiveEntryNode">
    					<h:commandLink action="#{archiveEntry.click}" value="Archive entry: #{archiveEntry.name}" />
    				</rich:treeNode>

    			</rich:recursiveTreeNodesAdaptor>

    		</rich:recursiveTreeNodesAdaptor>
    	</rich:treeNodesAdaptor>
    </rich:tree>
    ...