* Visite o ALJUG - http://aljug.blogspot.com - Noticias sobre a comunidade java alagoana e do mundo * Visite o blog Mundo Gamificado www.mundogamificado.com.br - E vamos mudar o mundo! *

quarta-feira, 12 de dezembro de 2018

Resetando valores na p:treetable

Boa pessoALL,  quanto tempo!

Mais é assim mesmo, vivo sempre aparece!


Hoje vou falar de algo que estava tirando meu sono, e que depois de muito procurar vi que é muito simples, sobre este assunto pude encontrar várias soluções porém nenhuma deu certo, comigo, e por isso venho colocar a solução que foi de forma bastante satisfatória.

O que eu queria?

Eu queria limpar a árvore para um estado inicial, ou se houvesse três checkboolean marcados e eu desmarcasse um, a arvore fosse redenderizada e mostrasse apenas que estavam ativas. Pois bem, pense no sufoco! Mais ainda, eu queria que de um lista fosse montado uma árvore(p:treeTable) com todos as opções, exemplo:
*Futebol              *Time                    *Estádio
  - Time                 - Patrocinador         - Capacidade
  - Estádio             - Presidente             - Local
  - Jogadores         - Treinador              - Nome

Então, o cenário é adicionar os marcados em (*) asterisco e a partir deles montasse uma árvore, até aí tudo certo, montava direitinho, porém quando eu desmarcava uma opção a árvore não o tirava, ainda ficava com as três opções.

Então, qual era minha ideia, limpar a árvore e montar com as que ainda permanecem ativas.

Achei essas soluções: Clean Input e reset values , mas não obtive sucesso.

A solução abaixo foi que realizou conforme eu desejava:


public void limparArvore(TreeNode raiz){
  raiz.getChildren().clear();
  raiz.clearParent();
  System.out.println("Limpando a árvore!");
  PrimeFaces pf = PrimeFaces.current();
  pf.resetInputs("form:arvore");
  raiz = createNode();
  pf.ajax().update("form:arvore");
 }

Com esse código eu fiquei muito feliz!

Espero ter ajudado a você, dê seu feedBack!

Até a próxima.