Popular menu tree com dados do banco

Bom dia galera do guj!

Sou iniciante na tecnologia flex, a qual utilizo juntamente com o java. Em meus estudos, vi que existem duas (nao sei se tem mais) maneiras de popular um elemento flex: com XML interno e externo.

Meu problema é o seguinte: tenhu um banco que guarda as opçoes do menu que cada usuario pode acessar. Sendo assim eu teria que ler o banco as opçoes para poder montar o menu! Mas o unico jeito que consegui fazer isso foi criando um arquivo XML externo, e carregando pelo DataProvider da tree. Só que essa operação é cara e não ficara legal para um sistema com varios usuarios!

Gostaria de saber se alguem sabe uma maneira mais facil de resolver esse problema!

A tabela possui 4 colunas (aplicação, modulo, rotina e URL [que é a pagina que ele vai abrir quando clicado]). A leitura do banco ta bacana! Só falta carrega na tree mesmo!

Alguma ideia ou exemplo??
=D

Obrigado e abraços!

Cara, o problema é que os dados vindos do banco são Flat’s (linha a linha), e o Tree, como o nome já diz é uma estrutura em árvore.

O que você tem que fazer é transformar essa estrutura Flat em Árvore, o que é bem chato de fazer. Porque você não usa um AdvancedDataGrid e agrupa esses dados? É mais fácil. Mas se quiser/precisar realmente utilizar Tree, tente ver se a classe HierarchicalData não resolve o seu problema, pois o objetivo dela é exatamente esse ai - transformar uma collection em uma estrutura hierarquica de dados.

Ola amigo!

Obrigado pela resposta, mas ja consegui resolver meu problema… Fiz da seguinte forma: construi minha estrutura de um XML dentro de uma String no java. Retornei essa String pro flex e passei ela como parametro para o construtor de uma variavel XML.
Algo como assim:

public String retornaXML(){
    //Consulta do banco....


   String ret = "<root> <node label = 'Dados do banco' /> </root>

  return ret;

Ai no flex ficou assim:


public function populaTree(event:ResultEvent):void{

    var tree:XML = new XML (event.result as String);
}

Ai e so setar a variavel XML ‘tree’ como dataProvider do menu…
Funfou de boa!! :smiley:

Obrigado!

[]'s

É, transformar os resultados vindos do banco em XML é uma opção… mas é bem chato de fazer isso se você tiver muitas situações como essa. Mas se for apenas neste caso, tá de boa :):slight_smile:

Depois de transformar em XML, no FLex é ‘mamão com açucar’ pra trabalhar com XML.