Se não estou em erro a Tree só apresenta subnodes se estes estiverem dentro de uma propriedade de nome 'children', não me recordo se é possível indicar outro campo como contendo os sub-elementos só verificando a documentação. Em relação ao ícone tem a ver com o mesmo problema, só te apresentará a pasta se o elemento tiver a tal propriedade children.
João Coelho Interactive Developer [email protected] ................................................................. -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Rui Sent: terça-feira, 19 de Maio de 2009 12:30 To: Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org Subject: [riapt] Visualização de nós e de leafs numa Tree em Flex Boas pessoal! Eu estou a tentar guardar objectos do Tipo Categoria numa Tree em Flex. cada Categoria tem os atrbutos nome(mostrado no ramo principal da Tree) um identificador e um ArrayCollection items, com Objectos que tambem têm nome e id. A minha estrutura principal, mainCats está declarada assim: [Bindable] private var mainCats:ArrayCollection; e é chamada como dataProvider na Tree que eu crio assim: <mx:Tree x="28" y="82" id="mainCatTree" width="193.5" height="294" dataProvider = "{mainCats}" labelFunction = "mainCatLabel" itemClick = "getCatItems(event)"/> eu quero fazer com que, ao clicar no nome de uma categoria, esse nó da tree expanda e mostre os nomes de todos os items dessa categoria, mas não estou a conseguir. Eu chamo as categorias por uma handler para uma base de dados em SQL. Os items de uma categoria são chamados de forma semelhante: public function showCatItems(event:ResultEvent):void{ var temp:ArrayCollection = new ArrayCollection (event.message.body.toString().split(',')); var mainIndex:int = temp.getItemAt(0).toString().substring(0, temp.getItemAt(0).toString().lastIndexOf(';',temp.length)); var currItems:ArrayCollection = new ArrayCollection() var o:Object = mainCats.getItemAt(mainIndex); for(var i:int = 1; i != temp.length; i++){ var id:String = temp.getItemAt(i).toString().substring(0, temp.getItemAt(i).toString().lastIndexOf(';',temp.length)); var itemName:String = temp.getItemAt(i).toString().substring (id.length+1,temp.getItemAt(i).toString().length); var item:Object = new Object(); item.ident = id; item.name = itemName; currItems.addItem(item); } o.items = currItems; for(var j:int = 0; j != o.items.length; j++){ Alert.show(o.items.getItemAt(j).name); } } Não liguem as substrings, estou a fazer isso porque a lista que recebo do java é uma lista de Pares, em que cada par tem <id, nome>. Estou a partir a string para guardar o id e o nome em variaveis distintas. Akele for final é apenas para testar que os nomes dos items da categoria que eu chamo estão a ser guardados corectamente, e estão de facto. Agora, visualmente, como é que eu mostro os items na árvore? Os nomes das categorias principais estão a aparecer na árvore mas com o ícone de uma folha em branco, e não como uma pasta... como é que eu altero isso? Desde já obrigado pela paciência por ler um post tão comprido :P Rui No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.5.339 / Virus Database: 270.12.32/2119 - Release Date: 05/19/09 06:21:00 --~--~---------~--~----~------------~-------~--~----~ Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" do Grupos Google. Para enviar mensagens para este grupo, envie um email para [email protected] Para anular a inscrição neste grupo, envie um email para [email protected] Para mais opções, visite este grupo em http://groups.google.com/group/riapt?hl=pt-PT -~----------~----~----~----~------~----~------~--~---
