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

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Responder a