Primefaces - Tree + Filtro

Olá amigos.

No Primefaces, o componente DataTable possui opções de filtro. Porém o componente Tree não possui.

Alguém aqui já precisou/desenvolveu algo parecido?

A ideia é ao digitar no campo filtro o conteúdo da tree filtrar.

Agradeço desde já!
Abraço

Para fazer o filtro é bem facil, é só você fazê-lo em jquery em cima do seu componente, mas se não me engano, o treetable do primefaces você pode sim realizar o filtro pelo componente.

Olá André!

Obrigado pela resposta, mas você poderia detalhar um pouco mais como eu poderia fazer isto utilizando o jQuery?

Sobre a TreeTable, não atende a necessidade que tenho. Preciso de uma Tree mesmo.

Abraço!

Ao criar o seu tree aí, você pode procurar um arquivo dentro da sua arquitetura de pasta, você faria o find pelo elemento, se existir, ele mostra, senão, ele esconde tudo que não for com o termo que você procura.

Exemplo:

$('#divArvore #pesquisar').keydown(function() {
		var encontrou = false;
		var termo = $(this).val().toLowerCase();
		$('#divArvore ul').each(function() {
			$(this).find('li').each(function() {
				if ($(this).text().toLowerCase().indexOf(termo) > -1)
					encontrou = true;
			});
			if (!encontrou)
				$(this).hide();
			else
				$(this).show();
			encontrou = false;
		});
	});

essa estrutura funcionaria para esse molde:

<div id="divArvore">
<input type="text" id="pesquisar"/>
<ul>
&lt;!-- sua estrutura de arvores --&gt;
</ul>
&lt;/div&gt;

foi feito no dedo, pode ser que tenha algum erro :lol: mas a idéia fica fácil para entender

Entendi, mas desta maneira ele não fará a validação dos nós pai e filho do termo filtrado né?

Utilizando como exemplo a arvore abaixo:

Brasil
SUL
SC
PR
RS
SUDESTE
SP
RJ
MG
ES

Se o usuário digitar o termo “SUL” na pesquisa, o resultado esperado é:

Brasil
SUL
SC
PR
RS

Ou seja, mantendo tudo que existe acima e abaixo de “SUL”…

Abraço

Estou como o mesmo problema, precisando de um filtro no <p:tree. Alguém conseguiu?