天天看点

Using the isBranch() method to determine if a Tree item is a branch or leaf

The following example shows how you can use the <code>isBranch()</code> method to determine if a specific node in a Tree control is a branch (folder) or leaf (item).

&lt;?xml version="1.0" encoding="utf-8"?&gt;

&lt;!-- http://blog.flexexamples.com/2007/11/30/using-the-isbranch-method-to-determine-if-a-tree-item-is-a-branch-or-leaf/ --&gt;

&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"

        layout="vertical"

        verticalAlign="middle"

        backgroundColor="white"&gt;

    &lt;mx:Script&gt;

        &lt;![CDATA[

            import mx.events.ListEvent;

            private function tree_itemClick(evt:ListEvent):void {

                var itemIsBranch:Boolean = tree.dataDescriptor.isBranch(tree.selectedItem);

                lbl.text = itemIsBranch.toString();

            }

            private function tree_labelFunc(item:XML):String {

                var returnStr:String = item.@label;

                var itemIsBranch:Boolean = tree.dataDescriptor.isBranch(item);

                if (itemIsBranch) {

                    returnStr += " (BRANCH)";

                }

                return returnStr;

        ]]&gt;

    &lt;/mx:Script&gt;

    &lt;mx:XML id="xmlDP"&gt;

        &lt;node&gt;

            &lt;node label="1.a" /&gt;

            &lt;node label="1.b" /&gt;

            &lt;node label="1.c"&gt;

                &lt;node label="1.c.i" /&gt;

                &lt;node label="1.c.ii" /&gt;

                &lt;node label="1.c.iii" /&gt;

                &lt;node label="1.c.iv" /&gt;

                &lt;node label="1.c.v" /&gt;

            &lt;/node&gt;

            &lt;node label="1.d" /&gt;

            &lt;node label="1.e"&gt;

                &lt;node label="1.e.i" /&gt;

                &lt;node label="1.e.ii" /&gt;

                &lt;node label="1.e.iii"&gt;

                    &lt;node label="1.e.iii.A" /&gt;

                &lt;/node&gt;

                &lt;node label="1.e.iv" /&gt;

            &lt;node label="1.f" /&gt;

        &lt;/node&gt;

    &lt;/mx:XML&gt;

    &lt;mx:ApplicationControlBar dock="true"&gt;

        &lt;mx:Form styleName="plain"&gt;

            &lt;mx:FormItem label="isBranch():"&gt;

                &lt;mx:Label id="lbl" fontWeight="bold" /&gt;

            &lt;/mx:FormItem&gt;

        &lt;/mx:Form&gt;

    &lt;/mx:ApplicationControlBar&gt;

    &lt;mx:Tree id="tree"

            dataProvider="{xmlDP}"

            labelFunction="tree_labelFunc"

            showRoot="false"

            width="50%"

            rowCount="6"

            itemClick="tree_itemClick(event);" /&gt;

&lt;/mx:Application&gt;

    本文转自 OldHawk  博客园博客,原文链接:http://www.cnblogs.com/taobataoma/archive/2008/01/15/1039370.html,如需转载请自行联系原作者