Não é necessário você usar arrays como dataProvider do tree... eu já usei uma vez um objeto construído por mim... que recebia através do servidor... imagine que uma árvore é composta por uma raíz... que contém filhos... que podem ser folhas ou ter outros filhos...
A aplicação que construí utilizava essa estrutura para apresentar uma árvore de relatórios... um Menu representava um filho que poderia ter relatórios... e um relatório era uma folha da árvore que tinha obrigatóriamente um pai que era um menu... isso é uma estrutura de nós... inicialmente só era necessário que eu carregasse a raíz (o menu principal) e conforme fosse abrindo os menus... eram carregados os itens daquele nó em específico... não tenho mais como acessar o código até por que eu ainda estava trabalhando em outra empresa... mas é essa a idéia básica... não era necessário utilizar xml... nem arrays... e tudo ficava eficiente... sem consumir muita memória por que somente os nós que interessavam estavam carregados... On Jun 30, 2:49 pm, Bruno Carneiro <guimaraescarne...@gmail.com> wrote: > Bem... não sei... fiz a melhor escolha de acordo com o que sei. > > Entendi que não é aceito modificar o this. Porque será? Enfim... é uma > dúvida secundária. > > Porque ser um array e não ter um array? > Porque o TREE trabalha com um array. Se eu tivesse um Array não > poderia passar o meu objeto diretamente como dataprovider do TREE eu > teria que passar a propriedade do objeto. O que a princípio me pareceu > estranho. Mas talvez nem seja tanto... talvez seja essa a melhor > saída. > > Porque não utlizar uma estrutura de nós? > O que seria exatamente uma estrutura de nós? Eu sabia que poderia usar > Array ou XMLList. Como os dados vem do PHP e o PHP é bom para > trabalhar com arrays e eu sei usar melhor arrays eu decidi usar > arrays. Usando um array de objetos também tem a vantagem ( estou > enganado? ) de que cada objeto tem seus métodos. Isso facilita minha > vida. Acho que com XML isso não seria possível. Estou usando e > abusando da recursividade para manipular a lista, faço isso pq é uma > árvore de objetos do mesmo tipo. Quando aplico um metodo em um objeto, > se for conveniente, ele repassa pra todos seus filhos... e assim > sucessivamente. > > Talvez seja uma boa oportunidade para aprender E4X. Que eu não domino. > > Obrigado pela atenção! > > On 30 jun, 09:57, "Marcelo Emanoel B. Diniz" > > > > <marceloeman...@gmail.com> wrote: > > O problema ao meu ver é que você está alterando a referência "this" e > > isso é que não é aceito... não seria mais fácil você TER um Array em > > vez de SER um array? ou melhor ainda... já que o que você quer é uma > > árvore... por que não utilizar uma estrutura de nós? > > > On Jun 30, 8:44 am, Bruno Carneiro <guimaraescarne...@gmail.com> > > wrote: > > > > Desculpe se a dúvida for muito simples, eu realmente estou com essa > > > dificuldade. > > > > No meu projeto, preciso usar uma árvore. Para visualizar eu uso um > > > TREE e como dataprovider um array de objetos com a propriedade > > > children. > > > > Para quem não conhece, o componente TREE identifica esse array de > > > objetos e cria a árvore a partir da propriedade children dos objetos, > > > que nada mais é do que um array de filhos. > > > > Naturalmente, tenho um conjunto de métodos para trabalhar com minha > > > árvore que preciso implementar. Daí a primeira idéia que me veio foi: > > > > Extender a classe Array e adicionar os meu métodos. > > > > No entanto, essa abordagem não é possível pois nos meus métodos, > > > eventualmente, o Array precisa se modificar, por exemplo nesse comando > > > > //remover o item no indice "i" > > > this = this.slice(0,i).concat(this.slice(i+1,this.length)); > > > > Eu recebo um erro nesse comando quando ele está dentro do contexto de > > > uma classe. Talvez seja um problema de auto-referencia. No momento não > > > me recordo. > > > > Alguém poderia me falar um pouco sobre esse problema? Porque eu não > > > posso usar aquele comando em uma classe? Como eu faço para modularizar > > > meu código e mante-lo reutilizável neste caso? -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev