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>