I'm using the <rich:tree> component with a nodeSelectionListener:
<rich:tree value="#{bean.groupTree}" nodeSelectListener="#{bean.nodeSelected}" var="data" id="gtree" ajaxSubmitSelection="true" > .... </rich:tree>
public void nodeSelected(NodeSelectedEvent event) { //.. code }
public void nodeSelected(NodeSelectedEvent event) { UITree tree = (UITree)event.getComponent(); TreeNode node = tree.getTreeNode(); Object selectedNode = node.getData(); }