Parece que dá pra usar a estratégia do item B, através de um DataDescriptor ( http://livedocs.adobe.com/flex/3/langref/mx/controls/treeClasses/DefaultDataDescriptor.html) customizado. Parece ser esse o "caminho das pedras".
2009/7/27 Fernando Ghisi <[email protected]> > Vou tentar explicar meu problema. > > Tenho duas classes, Usuario e Papel. A classe Usuario tem dois atributos, > “nome” e “children” (array de papeis); a classe Papel tem também um atributo > “nome” e um “children” (array de usuários). > > No modelo da minha aplicação tenho dois ArrayCollection, um com a lista de > usuários e outro com a lista de papéis. > > > Em determinado ponto do sistema, tenho uma Tree, em que o dataProvider é > hora o ArrayCollection de usuários (visualização por usuários) e hora o > ArrayCollection de papéis (visualização por papéis). O labelField dessa Tree > é “nome”, que é comum ao objeto Usuario e a ao Papel (não precisando ser > alterado quando mudo o dataProvider). > > Estando na visão por usuários, o segundo nível da árvore mostrará seus > papéis (que estão dentro do array “children” presente em cada objeto > Usuario). Estando na visão por papéis, o segundo nível da árvore mostrará > seus usuários (que estão dentro do array “children” presente em cada objeto > Papel). > > Até ai tudo bem, funciona perfeitamente. O problema é que eu não consigo > parar no segundo nível da Tree e a aplciação entra em looping infinito ao > tentar apresentar os dados da Tree com essa estratégia. Por exemplo, na > situação da visão por usuários, o segundo nível da árvore mostrará seus > papéis (que estão dentro do array “children” presente em cada objeto > Usuario), mas cada papel mostrará também seus usuários (que estão dentro do > array “children” presente em cada objeto Papel), que por sua vez mostrarão > seus papéis.... e assim por diante. > > E aí, como eu poderia fazer para evitar isso? Pensei em duas estratégias, > mas não sei se é possível fazer e não encontrei nada pesquisando no Google: > > a) Existe alguma forma de fazer com que a Tree use o dataprovider somente > até o segundo nível (por exemplo, na visão de usuários, mostraria somente os > usuários e seus papéis, sem utilizar o children dos objetos papéis)? > > b) Ou existe alguma forma de usar hierarquia de um dataProvider de > ArrayCollection sem ter que chamar o atributo do objeto pai de “children”? > Se der (que eu saiba não dá), seria só eu chamar o array de papéis de > “papeis” no objeto Usuario e o de usuários de “usuarios” no objeto Papel e > passar essa informação de alguma forma pra Tree (que ao invés deutilziar o > atributo "children" pra fazer a hierarquia, utilizaria um atributo com o > nome informado) – daí o dataprovider não entraria em recursão por causa do > atributo “children” que estava presente nos dois objetos. > > > Deu pra entender alguam coisa, ou ficou confusa a minha explciação? Alguéms > abe se tem como fazer uam das duas cosias, ous e tem ainda outra maneira de > fazer isso? > > Obs.: Não quero utilizar XML (que já resolveria o problema). > > > > []s > > Fernando > > -- Fernando Benedet Ghisi --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---
