I will use three classes. The first containes a String value, projectName and a List devices; that I fill with the second Object, Device.
This Device Object will contain two variables as well, String deviceName; and List List channels, which will contain one variable, channelName.
Then I will use nested for loops to populate the first Class with a projectName, then the List of Device Objects, and within that for lopp populate the List of Channel Objects.
That should make it where I only need to bind the firs ProjectHolder class to my tree, but it will have access to all three Objcts right?
SOmthing like (this only covers projectName and devices Object.:
<rich:tree nodeSelectListener="#{treeClickBean.projectSelection}" ajaxSubmitSelection="true" switchType="client" var="item" ajaxKeys="#{null}" reRender="projectForm"> <rich:treeNodesAdaptor nodes="#{testNodesBean.projects}" var="projects"> <rich:treeNode> <h:outputLink value="/NI/explorer_click/project.jsf"> <h:outputText value="#{projects.projectName}" /> </h:outputLink> </rich:treeNode> <rich:recursiveTreeNodesAdaptor roots="#{projects.deviceAndChannels}" var="device"> <rich:treeNode> <h:outputLink value="/NI/explorer_click/device.jsf"> <h:outputText value="#{device.deviceName}" /> </h:outputLink> </rich:treeNode>