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.