Using the isBranch() method to determine if a Tree item is a branch or leaf
Posted on 2008-01-15 10:46 OldHawk 阅读(527) 评论(0) 编辑 收藏 举报
The following example shows how you can use the
isBranch()
method to determine if a specific node in a Tree control is a branch (folder) or leaf (item).<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/11/30/using-the-isbranch-method-to-determine-if-a-tree-item-is-a-branch-or-leaf/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![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;
}
]]>
</mx:Script>
<mx:XML id="xmlDP">
<node>
<node label="1.a" />
<node label="1.b" />
<node label="1.c">
<node label="1.c.i" />
<node label="1.c.ii" />
<node label="1.c.iii" />
<node label="1.c.iv" />
<node label="1.c.v" />
</node>
<node label="1.d" />
<node label="1.e">
<node label="1.e.i" />
<node label="1.e.ii" />
<node label="1.e.iii">
<node label="1.e.iii.A" />
</node>
<node label="1.e.iv" />
</node>
<node label="1.f" />
</node>
</mx:XML>
<mx:ApplicationControlBar dock="true">
<mx:Form styleName="plain">
<mx:FormItem label="isBranch():">
<mx:Label id="lbl" fontWeight="bold" />
</mx:FormItem>
</mx:Form>
</mx:ApplicationControlBar>
<mx:Tree id="tree"
dataProvider="{xmlDP}"
labelFunction="tree_labelFunc"
showRoot="false"
width="50%"
rowCount="6"
itemClick="tree_itemClick(event);" />
</mx:Application>
<!-- http://blog.flexexamples.com/2007/11/30/using-the-isbranch-method-to-determine-if-a-tree-item-is-a-branch-or-leaf/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![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;
}
]]>
</mx:Script>
<mx:XML id="xmlDP">
<node>
<node label="1.a" />
<node label="1.b" />
<node label="1.c">
<node label="1.c.i" />
<node label="1.c.ii" />
<node label="1.c.iii" />
<node label="1.c.iv" />
<node label="1.c.v" />
</node>
<node label="1.d" />
<node label="1.e">
<node label="1.e.i" />
<node label="1.e.ii" />
<node label="1.e.iii">
<node label="1.e.iii.A" />
</node>
<node label="1.e.iv" />
</node>
<node label="1.f" />
</node>
</mx:XML>
<mx:ApplicationControlBar dock="true">
<mx:Form styleName="plain">
<mx:FormItem label="isBranch():">
<mx:Label id="lbl" fontWeight="bold" />
</mx:FormItem>
</mx:Form>
</mx:ApplicationControlBar>
<mx:Tree id="tree"
dataProvider="{xmlDP}"
labelFunction="tree_labelFunc"
showRoot="false"
width="50%"
rowCount="6"
itemClick="tree_itemClick(event);" />
</mx:Application>