开发者

Hide the last children of an XML data provider (not to be displayed in mx:Tree)

开发者 https://www.devze.com 2022-12-26 09:57 出处:网络
I have an hierachical XML data, and I want to display it as a tree. The XML data is something like this:

I have an hierachical XML data, and I want to display it as a tree. The XML data is something like this:

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

However, I don't want to display the last elements (parameters) in the tree becaus开发者_开发百科e, well, it is not meant to be displayed, but still it has to be there.

Any advice on how can I achieve that? I am thinking of either extending DefaultDataDescriptor or create a class which implement ITreeDataDescriptor. Which approach will be suitable in this case?


It's very easy, apparently. Just override the isBranch method from 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);
    }
  }
}
0

精彩评论

暂无评论...
验证码 换一张
取 消