Boa tarde pessoal,
Estou com um probleminha no Tree do primefaces…
Estou em um cadastro de contas contabeis e precisaria alutalizar além de um combo, um tree.
A questão é que o combo atualiza corretamente ao ponto que o tree não atualiza.
Estou checando e no metodo que atualiza o tree, ele está recebendo o List com todos os componentes, inclusive o ultimo que foi adicionado… Sei que a lista está certa, pois como podem ver na imagem, o combo é atualizado mas o tree não.
O mais estranho é que ele só atualiza com os novos nodes quando paro e inicio o tomcat… nem dando refresh na pagina ele funciona…
Estou usando o Primefaces 3M1 mas acontece também no 2.2.1
Alguém ja passou por isso ou tem uma idéia?
Abraço e obrigado!
Rodrigo
<p:commandButton id="btnCad" update="msgs,txtnivelextenso,chkativarelatoriodespesa,cmbContapai,txtNome,Tree,msgOk" actionListener="#{contaContabilMB.cadastrar}" ajax="true" value="Cadastrar"/>
<p:tree id="Tree" value="#{contaContabilMB.root}" var="node" selectionMode="single" selection="#{contaContabilMB.selectedNode}" update="msgs" nodeSelectListener="#{contaContabilMB.onNodeSelected}">
<p:treeNode>
<h:outputText value="#{node}"/>
</p:treeNode>
</p:tree>
private void atualizaTree(){
System.out.println("Tamanho do List da Tree :"+lcc.size());
boolean inicio = false;
root = null;
root = new DefaultTreeNode("root", null);
TreeNode raiz0 = null;
TreeNode raiz1 = null;
TreeNode raiz2 = null;
TreeNode raiz3 = null;
for (int i = 0; i < lcc.size(); i++) {
Contacontabil ccont0 = lcc.get(i);
if(ccont0.getNivel()==1){
raiz0 = new DefaultTreeNode(ccont0.getNivelextenso()+" - "+ccont0.getNome(), root);
Collection<Contacontabil> listaContas = ccont0.getContacontabilCollection();
for (Iterator<Contacontabil> it = listaContas.iterator(); it.hasNext();) {
Contacontabil ccont3 = it.next();
if(ccont3.getNivel()==2){
raiz1 = new DefaultTreeNode(ccont3.getNivelextenso()+" - "+ccont3.getNome(), raiz0);
Collection<Contacontabil> listaContas1 = ccont3.getContacontabilCollection();
for (Iterator<Contacontabil> it1 = listaContas1.iterator(); it1.hasNext();) {
Contacontabil contacontabil = it1.next();
if(contacontabil.getNivel()==3){
raiz2 = new DefaultTreeNode(contacontabil.getNivelextenso()+" - "+contacontabil.getNome(), raiz1);
Collection<Contacontabil> listaContas2 = contacontabil.getContacontabilCollection();
for (Iterator<Contacontabil> it2 = listaContas2.iterator(); it2.hasNext();) {
Contacontabil contacontabil1 = it2.next();
if(contacontabil1.getNivel()==4){
raiz3 = new DefaultTreeNode(contacontabil1.getNivelextenso()+" - "+contacontabil1.getNome(), raiz2);
Collection<Contacontabil> listaContas3 = contacontabil1.getContacontabilCollection();
for (Iterator<Contacontabil> it3 = listaContas3.iterator(); it3.hasNext();) {
Contacontabil contacontabil2 = it3.next();
System.out.println("######################### - "+contacontabil2.getNivel().toString());
if(contacontabil2.getNivel()==5){
TreeNode raiz4 = new DefaultTreeNode(contacontabil2.getNivelextenso()+" - "+contacontabil2.getNome(), raiz3);
}
}
}
}
}
}
}
}
}
}
}