Скрыть последние дочерние элементы поставщика данных XML (не должен отображаться в mx: Tree) - PullRequest
1 голос
/ 06 апреля 2010

У меня есть иерархические данные XML, и я хочу отобразить их в виде дерева. Данные XML выглядят примерно так:

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

Однако я не хочу отображать последние элементы (parameters) в дереве, потому что, ну, он не предназначен для отображения, но все же должен быть там.

Какой-нибудь совет, как мне этого добиться? Я имею в виду либо расширение DefaultDataDescriptor, либо создание класса, который реализует ITreeDataDescriptor. Какой подход подойдет в этом случае?

1 Ответ

1 голос
/ 07 апреля 2010

Это очень легко, по-видимому.Просто переопределите метод isBranch из 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);
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...