Как обойти дерево, используя HierarchicalCollectionViewCursor?
Пытаюсь обойти все элементы дерева на всех уровнях иерархии. Вот код:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
width="500" height="500"
creationComplete="onCreationComplete(event)">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.collections.HierarchicalCollectionView;
import mx.collections.HierarchicalCollectionViewCursor;
import mx.collections.HierarchicalData;
import mx.collections.IHierarchicalCollectionViewCursor;
import mx.controls.List;
import mx.events.FlexEvent;
[Bindable]
private var treeDP:HierarchicalCollectionView;
private var treeData:Array=[{label:"leaf 1"}];
protected function onCreationComplete(event:FlexEvent):void
{
var children:Array=[{label:"leaf 11"},{label:"leaf 12"}];
treeData[0].children=children;
treeDP=new HierarchicalCollectionView(new HierarchicalData(treeData));
}
protected function onClick(event:MouseEvent):void
{
var cursor:IHierarchicalCollectionViewCursor;
cursor=IHierarchicalCollectionViewCursor(treeDP.createCursor());
while(cursor.current)
{
trace(cursor.current.label);
cursor.moveNext();
}
}
]]>
</mx:Script>
<mx:VBox width="100%" height="100%">
<mx:Tree id="tree" dataProvider="{treeDP}" width="100%" height="100%"/>
<!--<mx:AdvancedDataGrid id="grid" dataProvider="{treeDP}" width="100%" height="100%"/>-->
<mx:Button click="onClick(event)"/>
</mx:VBox>
</mx:Application>
Увы, что при открытом, что при закрытом корневом узле, в консоль трейсится только "leaf 1", т.е. курсор не обходит данные в глубину. Для AdvancedDataGrid этот код работает. Подскажите, как сделать, чтоб он работал и для дерева?
|