I have a tree that I use to navigate my data model and update the data. See the sample below.
I have placed a breakpoint in my listener method and here is what I see.
The nodeSelectListener works fine until the a4j:commandButton is pressed. You can still navigate to other nodes, but when you select the node that was just saved the listener method is not invoked. If I save another node then the listener on the previously saved node starts to work again.
If I switch the a4j:commandButton to just reRender the 'detail' then the nodeSelectListener works fine. However, this is not good, because now my tree is not refreshed.
Any ideas what is going on here?
<t:table id="view"> <t:tr> <t:td id="left"> <a4j:form id="treeForm"> <rich:tree id="tree" value="#{tree}" var="item" nodeFace="#{item.type}"> <rich:treeNode type="Root"> <h:outputText value="#{item.text}"/> </rich:treeNode> <rich:treeNode type="Folder"> <h:outputText value="#{item.text}"/> </rich:treeNode> <rich:treeNode type="MyEntity" ajaxSubmitSelection="true" nodeSelectListener="#{item.changeCurrent}" reRender="detail"> <h:outputText value="#{item.text}"/> </rich:treeNode> </rich:tree> </a4j:form> </t:td> <t:td id="detail"> <a4j:form id="detailForm"> <a4j:commandButton value="Save" reRender="view" action="#{tree.current.save}"> </a4j:commandButton> <!-- details go here --> </a4j:form> </t:td> </t:tr> </t:table>