Ajuda com o rich:tree

11 respostas
C

Olá pessoal.
Não é comum eu postar alguma duvida, faço isso quando ja pesquisei bastante, mas agora preciso de ajuda em relação ao rich faces usando o rich:tree.
Minha duvida é como faço para popular o rich:tree na minha BEAN.
Eu tenho 5 tabelas de classificação de produtos que tem 5 niveis e gostaria de montar um tree com ela, assim:

Exemplo:
Impressora
|
|___ Lexmark
|
|______614

Tem um link que pesquisei aqui mesmo no guj http://www.guj.com.br/posts/list/70137.java de um do nossos colegas, mas nao consegui.

Minha grande dificuldade não é a implementação na parte da view e sim na minha BEAN

Se alguem puder me ajudar, agradeço.

Obrigado.

11 Respostas

V

Bom dia

Cara, eu tive o mesmo problema e consegui resolver com ajuda aqui do forum.

[]s

C

VictorKinder, voce pode postar o seu BEAN para eu da uma olhada e a parte da view, por favor

Neto.Sabio

Chronos , coloca o codigo do bean ai , e se possivel o da view

pace!!!

C

Neto.Sabio:
Chronos , coloca o codigo do bean ai , e se possivel o da view

pace!!!

Então ja copiei varios exemplos e nao funciona ate mesmo do link http://www.guj.com.br/posts/list/70137.java e dos exemplo do site rich faces http://livedemo.exadel.com, e nao consegui chegar ao ponto que funcione ou pelos menos da um erro.
A ultima tentativa foi uma alguma coisa assim

TreeNode raiz = new TreeNodeImpl(); raiz.setData("teste"); for(int i = 0; i < 20; i ++){ TreeNode node = new TreeNodeImpl(); //adiciona o PAI node.setParent(raiz); //associa os filhos node.setData("opcao" + Integer.toString(i)); raiz.addChild(i, node); }

Mas nao funcionou.

Neto.Sabio

Ja Deu uma olhada nisso ?

<rich:tree adviseNodeOpened="#{treeModelBean.adviseNodeOpened}" switchType="client">
    <rich:treeNodesAdaptor id="project" nodes="#{loaderBean.projects}" var="project">
        <rich:treeNode>
            <h:commandLink action="#{project.click}" value="Project: #{project.name}" />
        </rich:treeNode>

        <rich:treeNodesAdaptor id="srcDir" var="srcDir" nodes="#{project.srcDirs}">
            <rich:treeNode>
                <h:commandLink action="#{srcDir.click}" value="Source directory: #{srcDir.name}" />
            </rich:treeNode>

            <rich:treeNodesAdaptor id="pkg" var="pkg" nodes="#{srcDir.packages}">
                <rich:treeNode>
                    <h:commandLink action="#{pkg.click}" value="Package: #{pkg.name}" />
                </rich:treeNode>

                <rich:treeNodesAdaptor id="class" var="class" nodes="#{pkg.classes}">
                    <rich:treeNode>
                        <h:commandLink action="#{class.click}" value="Class: #{class.name}" />
                    </rich:treeNode>
                </rich:treeNodesAdaptor>
            </rich:treeNodesAdaptor>

            <rich:treeNodesAdaptor id="pkg1" var="pkg" nodes="#{srcDir.packages}">
                <rich:treeNode>
                    <h:commandLink action="#{pkg.click}" value="Package1: #{pkg.name}" />
                </rich:treeNode>

                <rich:treeNodesAdaptor id="class1" var="class" nodes="#{pkg.classes}">
                    <rich:treeNode>
                        <h:commandLink action="#{class.click}" value="Class1: #{class.name}" />
                    </rich:treeNode>
                </rich:treeNodesAdaptor>
            </rich:treeNodesAdaptor>
        </rich:treeNodesAdaptor>
        
        <rich:recursiveTreeNodesAdaptor id="dir" var="dir"
            roots="#{project.dirs}" nodes="#{dir.directories}">
            <rich:treeNode>
                <h:commandLink action="#{dir.click}" value="Directory: #{dir.name}" />
            </rich:treeNode>
            
            <rich:treeNodesAdaptor id="file" var="file" nodes="#{dir.files}">
                <rich:treeNode>
                    <h:commandLink action="#{file.click}" value="File: #{file.name}" />
                </rich:treeNode>
            </rich:treeNodesAdaptor>
            
            <rich:treeNodesAdaptor id="file1" var="file" nodes="#{dir.files}">
                <rich:treeNode>
                    <h:commandLink action="#{file.click}" value="File1: #{file.name}" />
                </rich:treeNode>
            </rich:treeNodesAdaptor>

            <rich:recursiveTreeNodesAdaptor id="archiveEntry" var="archiveEntry"
                roots="#{dir.files}" nodes="#{archiveEntry.archiveEntries}" 
                includedRoot="#{archiveEntry.class.simpleName == 'ArchiveFile'}"
                includedNode="#{archiveEntry.class.simpleName == 'ArchiveEntry'}">
            
                <rich:treeNode id="archiveEntryNode">
                    <h:commandLink action="#{archiveEntry.click}" value="Archive entry: #{archiveEntry.name}" />
                </rich:treeNode>

            </rich:recursiveTreeNodesAdaptor>

        </rich:recursiveTreeNodesAdaptor>

    </rich:treeNodesAdaptor>
</rich:tree>
C

Neto.Sabio, entao a parte da view eu consigo entender, tem como vc colocar a BEAN (loaderBean) para que eu possa da uma olhada

Neto.Sabio

esse exemplo é do proprio site da richface, provavelmente é so mostrando onde voce determina o methodo.

segue o link
http://livedemo.exadel.com/richfaces-demo/richfaces/treeNodesAdaptor.jsf?tab=usage

caso nao consigo me avisa que eu tento criar uma estrutura aqui e te mando o codigo

pace!!!

C

Obrigado a todos pelas dicas, realmente foi falta de paciencia minha estudar melhor o exemplo do

http://livedemo.exadel.com/richfaces-demo/richface...treeNodesAdaptor.jsf?tab=usage

leandroguima

Caros,

Alguém sabe me dizer se é possível listar os arquivos de um diretório do sistema ex.: C:\temp com o componente recursiveTreeNodesAdaptor? Existe algum exemplo disso?

Eu segui o próprio exemplo do RichFaces, funcionou direitinho, porem apenas para arquivos que estão no projeto.

Obrigado,
Leadro

gugaa_df

Estou com o mesmo problema, alguém ja utilizou isso?

leandroguima:
Caros,

Alguém sabe me dizer se é possível listar os arquivos de um diretório do sistema ex.: C:\temp com o componente recursiveTreeNodesAdaptor? Existe algum exemplo disso?

Eu segui o próprio exemplo do RichFaces, funcionou direitinho, porem apenas para arquivos que estão no projeto.

Obrigado,
Leadro

carlos.scuna

alguém já conseguiu resolver isto??? também não estou conseguindo exibir uma tree recursiva com níveis ilimitados…

estou obtendo a hierarquia dos objetos de uma classe que referencia ela mesma…
obrigado

Criado 23 de setembro de 2008
Ultima resposta 26 de jun. de 2009
Respostas 11
Participantes 6