2010-04-06 2 views
1

J'ai des données XML hiérarchiques et je veux les afficher en arbre. Les données XML est quelque chose comme ceci:Masquer les derniers enfants d'un fournisseur de données XML (ne pas afficher dans mx: Tree)

<services> 

    <service name="TestService" endpoint=""> 
    <method name="sayHi"> 
     <parameter name="firstName" /> 
     <parameter name="lastName" /> 
    </method> 
    <method name="sayGoodbye"> 
     <parameter name="firstName" /> 
     <parameter name="lastName" /> 
    </method> 
    </service> 

    <service name="AnotherTestService"> 
    <method name="getName" /> 
    <method name="setName"> 
     <parameter name="name" /> 
    </method> 
    </service> 
</services> 

Cependant, je ne veux pas afficher les derniers éléments (parameters) dans l'arbre parce que, eh bien, il ne vise pas à afficher, mais il doit Soyez là.

Un conseil sur comment puis-je y parvenir? Je pense à étendre DefaultDataDescriptor ou à créer une classe qui implémente ITreeDataDescriptor. Quelle approche conviendra dans ce cas?

Répondre

1

C'est très facile, apparemment. Remplacez simplement la méthode isBranch à partir de DefaultDataDescriptor.

package 
{ 
    import mx.controls.treeClasses.DefaultDataDescriptor; 

    public class ServiceDataDescriptor extends DefaultDataDescriptor 
    { 
    public override function isBranch(
     node:Object, model:Object = null):Boolean 
    { 
     var xmlNode:XML = new XML(node); 
     if (node.localName() == "method") 
     return false; 
     else 
     return super.isBranch(node, model); 
    } 
    } 
} 
Questions connexes