Dynamic rich:Tree no refresh a child node after persist or remove
w1l14n.wiliands.gmail.com Jan 6, 2011 7:35 AMGood morning everyone!
I have worked in a dynamic rich:tree
with rich:recursiveTreeNodesAdaptor
and not work after persist/remove a new child node.
The tree just refresh after I press F5's button or acess the page from menu.
The method ppaMarcaModeloHome.listaPpaMarcaModelo() returns the List of PpaMarcaModelo.
My code:
<rich:panel id="panel" header="Cadastro de Marca/Modelo"> <a:region id="campos" > <rich:tree id="treeTestTree" switchType="client" ajaxSubmitSelection="true" reRender="tree" ajaxSingle="true"> <rich:recursiveTreeNodesAdaptor id="tree" roots="#{ppaMarcaModeloHome.listaPpaMarcaModelo()}" var="node" nodes="#{node.itensFilhos}"> <rich:treeNode data="#{node.codPpaMarcaModelo}" > <table width="800"> <tr> <td width="34%"> <a:commandLink action="#{ppaMarcaModeloHome.find()}" value="#{node.nome}" reRender="descricaoField,marcaModeloPaiField,codPpaMarcaModeloPai" ajaxSingle="true" rendered="#{s:hasPermission('ppaMarcaModeloHome','find')}" disabled="#{!s:hasPermission('ppaMarcaModeloHome', 'update')}"> <f:param name="codPpaMarcaModelo" value="#{node.codPpaMarcaModelo}"/> </a:commandLink> </td> <td width="33%"> <a:commandLink action="#{ppaMarcaModeloHome.incluirSubItem()}" value="Incluir Sub-Item" reRender="descricaoField,marcaModeloPaiField,codPpaMarcaModeloPai" ajaxSingle="true" rendered="#{s:hasPermission('ppaMarcaModeloHome','incluirSubItem')}"> <f:param name="codPpaMarcaModelo" value="#{node.codPpaMarcaModelo}"/> </a:commandLink> </td> <td width="33%"> <a:commandLink action="#{ppaMarcaModeloHome.remove()}" value="Excluir" reRender="treeTestTree,descricaoField,marcaModeloPaiField,codPpaMarcaModeloPai,ppaMarcaModelo" ajaxSingle="true" rendered="#{s:hasPermission('ppaMarcaModeloHome','remove')}"> <f:param name="codPpaMarcaModelo" value="#{node.codPpaMarcaModelo}"/> </a:commandLink> </td> </tr> </table> </rich:treeNode> </rich:recursiveTreeNodesAdaptor> </rich:tree> <h:inputHidden id="codPpaMarcaModeloPai" value="#{ppaMarcaModeloHome.codMarcaModeloPai}"/> <s:decorate id="marcaModeloPaiField" template="/layout/edit.xhtml"> <ui:define name="label">Marca/Modelo Pai</ui:define> <h:inputText id="marcaModeloPai" size="40" maxlength="40" value="#{ppaMarcaModeloHome.nomeMarcaModeloPai}" readonly="true" disabled="true"> <a:support event="onblur" reRender="marcaModeloPaiField" bypassUpdates="true" ajaxSingle="true"/> </h:inputText> </s:decorate> <s:decorate id="descricaoField" template="/layout/edit.xhtml"> <ui:define name="label">Nome</ui:define> <h:inputText id="descricao" required="true" size="40" maxlength="40" value="#{ppaMarcaModeloHome.instance.nome}"> <a:support event="onblur" reRender="descricaoField" bypassUpdates="true" ajaxSingle="true"/> </h:inputText> </s:decorate> </a:region> <div style="clear:both"> <span class="required">*</span> Campos Obrigatórios </div> </rich:panel> <div class="actionButtons"> <h:commandButton id="save" value="Gravar" action="#{ppaMarcaModeloHome.persist}" disabled="#{!ppaMarcaModeloHome.wired}" rendered="#{!ppaMarcaModeloHome.managed and s:hasPermission('ppaMarcaModeloHome','persist')}"/> <h:commandButton id="update" value="Atualizar Dados" action="#{ppaMarcaModeloHome.update}" rendered="#{ppaMarcaModeloHome.managed and s:hasPermission('ppaMarcaModeloHome','update')}"/> <h:commandButton id="delete" value="Excluir" action="#{ppaMarcaModeloHome.remove}" immediate="true" rendered="#{ppaMarcaModeloHome.managed and s:hasPermission('ppaMarcaModeloHome','remove')}"/> <h:commandButton id="novo" value="Novo" action="#{ppaMarcaModeloHome.novo}" immediate="true"/> </div>
Ps.: Sorry for my bad english.