Fiz a seguinte mudança no xml:
<root id="root" name="Root" >
<child id="x" name="X" parentId="root">
<child id="y" name="Y" parentId="x">
</child>
</child>
<child id="z" name="Z" parentId="root">
</child>
</root>
Melhorou, mas está mostrando como pasta apenas Root e X, assim:
Root (pasta)
X (pasta)
Y (arquivo)
Z (arquivo)
Esse é a minah função:
private function treeLabel(item:Object):String {
var node:XML = XML(item);
if( node.localName() == "root" ) {
return node.attribute("name");
} else if( node.localName() == "child" ) {
return node.attribute("name");
} else {
return item.toString();
}
}
Estranho.
On 29 jan, 14:12, Júlio César Ködel <[email protected]> wrote:
> Veja bem: você JÁ adicionou os nós na Tree (quando setou o DataProvider).
>
> O labelFunction apenas te dá a oportunidade de AJUSTAR o label sendo exibido.
>
> Para que os nós indesejados não sejam adicionados, você tem que
> tratá-los antes de adicioná-los à tree via dataProvider, então, só
> fazer uma função que extraia os dados desejados em um XML parecido
> com:
>
> <node label="Texto" icon="NomeVarClassDoIcone">
> <node label="Texto" icon="NomeVarClassDoIcone"/>
> </node>
>
> sendo icon opcional
>
> 2010/1/29 Vinicius <[email protected]>:
>
>
>
>
>
> > Não tem como apenas pular?
>
> > On 29 jan, 13:48, Júlio César Ködel <[email protected]> wrote:
> >> Poisé... não vai dar não =)
>
> >> Cada tag do XML é um nó da árvore... e você não quer todos os nós, só
> >> dois deles.
>
> >> Vai ter que traduzir o XML para transformá-lo para o formato correto
> >> antes de carregar na tree =\
>
> >> 2010/1/29 Vinicius <[email protected]>:
>
> >> > Quero saber o q tenho q mudar para obter a resposta q eu quero.
> >> > :)
>
> >> > On 29 jan, 13:43, Vinicius <[email protected]> wrote:
> >> >> Olá Júlio,
>
> >> >> Não está não, ele faz isso:
>
> >> >> root
> >> >> id
> >> >> name
> >> >> child
> >> >> id
> >> >> name
> >> >> parent
> >> >> child
> >> >> id
> >> >> name
> >> >> parent
>
> >> >> Eu quero isso:
>
> >> >> Root
> >> >> X
> >> >> Y
>
> >> >> Vinicius.
>
> >> >> On 29 jan, 13:39, Júlio César Ködel <[email protected]> wrote:
>
> >> >> > Uai... ele tá fazendo exatamente o que você pediu: return node.name()
>
> >> >> > node.text() se não me engano retonaria o conteúdo da tag (X e Y).
>
> >> >> > 2010/1/29 Vinicius <[email protected]>:
>
> >> >> > > Caros,
>
> >> >> > > Estou querendo carregar um XML em uma árvore do Flex.
>
> >> >> > > O meu XML é o seguinte:
>
> >> >> > > <root>
> >> >> > > <id>root</id>
> >> >> > > <name>Root</name>
> >> >> > > <child>
> >> >> > > <id>x</id>
> >> >> > > <name>X</name>
> >> >> > > <parent>
> >> >> > > <id>root</id>
> >> >> > > <name>Root</name>
> >> >> > > </parent>
> >> >> > > <child>
> >> >> > > <id>y</id>
> >> >> > > <name>Y</name>
> >> >> > > <parent>
> >> >> > > <id>x</id>
> >> >> > > <name>X</name>
> >> >> > > </parent>
> >> >> > > </child>
> >> >> > > </child>
> >> >> > > </root>
>
> >> >> > > Gostaria que a árvore fosse assim:
>
> >> >> > > Root
> >> >> > > X
> >> >> > > Y
>
> >> >> > > Estou fazendo dessa forma:
>
> >> >> > > <mx:Tree id="tree" top="72" left="50" dataProvider="{companyData}"
> >> >> > > labelFunction="treeLabel"
> >> >> > > height="224" width="179"/>
>
> >> >> > > e o treeLabel é:
>
> >> >> > > private function treeLabel(item:Object):String {
> >> >> > > var node:XML = XML(item);
> >> >> > > if( node.localName() == "root" ) {
> >> >> > > return node..name();
> >> >> > > } else if( node.localName() == "child" ) {
> >> >> > > return node.name();
> >> >> > > } else if (node.localName() == "id" ||
> >> >> > > node.localName()
> >> >> > > == "name" || node.localName() == "parent") {
> >> >> > > return node.name();
> >> >> > > } else {
> >> >> > > return null;
> >> >> > > }
>
> >> >> > > }
>
> >> >> > > Dessa forma ele gera uma árvore com todos os itens do XML, ficando
> >> >> > > assim:
> >> >> > > root
> >> >> > > id
> >> >> > > name
> >> >> > > child
> >> >> > > id
> >> >> > > name
> >> >> > > parent
> >> >> > > child
> >> >> > > id
> >> >> > > name
> >> >> > > parent
>
> >> >> > > E não usa o value e sim o próprio nome da tag.
>
> >> >> > > Grato,
> >> >> > > Vinicius.
>
> >> >> > > --
> >> >> > > 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
> >> >> > > emhttp://groups.google.com/group/flexdev
>
> >> >> > --
> >> >> > []
> >> >> > Júlio César Ködel G.
>
> >> > --
> >> > 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 emhttp://groups.google.com/group/flexdev
>
> >> --
> >> []
> >> Júlio César Ködel G.
>
> > --
> > 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 emhttp://groups.google.com/group/flexdev
>
> --
> []
> Júlio César Ködel G.
--
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