Pessoal,
Utilizo o p:contextMenu no meu treeTable com as opções de um CRUD (insere, altera, exclui).
Ao clicar na opção inserir desse menu, abro um formulário em p:dialog e insiro um novo nó nessa árvore. Até ai tranquilo !!!
Problema: Após expandir qualquer elemento da minha árvore e depois retraí-lo, ao inserir um novo elemento (em qualquer que seja o nível)
todos os elementos que eu havia expandido e FECHADO voltam a abrir. Ex:
Expandindo o nó “Imagens” do TreeTable:
v Documentos
v Imagens
> Aniversários
> Videos
Retraindo o nó “Imagens”
v Documentos
> Imagens
> Videos
Ao inserir um novo nó em “Videos” o nó “Imagens” que eu havia expandido volta a estar aberto.
Gostaria que simplesmente apenas fosse renderizado o novo objeto que inseri.
Assim:
v Documentos
> Imagens
v Videos
> Meu Casamento
Da uma força ae pessoal?
abraço
Para explicar melhor:
meu treeTable
[code]<p:treeTable id=“ttIndex"
value=”#{treeMB2.root}"
selectionMode=“single"
selection=”#{treeMB2.selectedNode}"
var=“doc” style=“width:1388px; padding: 5px;” >
<p:column style="width:150px">
<h:outputText value="#{doc.nome}" />
</p:column>
</p:treeTable>[/code]
meu método de addChild
public void addChildNodeAcao(Acao obj) {
TreeNode filho = null;
filho = new DefaultTreeNode(obj, selectedNode);
filho.setSelected(true);
selectedNode = filho;
selectedNode = expand(selectedNode);
}
public TreeNode expand(TreeNode treeNode){
if (treeNode.getParent()!=null){
treeNode.getParent().setExpanded(true);
expand(treeNode.getParent());
}
return treeNode;
}
e sempre que retorna para a página, o treenode está todo fechado
Consegui resolver assim:
[code]public void addChildNodeProjeto(Projeto obj) {
TreeNode filho = null;
filho = new DefaultTreeNode(obj, selectedNode);
clearSelection(this.getSelectedNode());
this.setSelectedNode(filho);
this.getSelectedNode().setSelected(true);
}
public void clearSelection(TreeNode node) {
node.setSelected(false);
for (TreeNode t : node.getChildren()) {
clearSelection(t);
}
}[/code]