![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 16
|
Пытаюсь обойти все элементы дерева на всех уровнях иерархии. Вот код:
<?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> |
|
|||||
|
Tree не умеет нормально работать с HierarchicalCollectionView. Для "разворачивания" / "сворачивания" дерева он использует интерфейс ITreeDataDescriptor
Цитата:
__________________
משיח לא בא משיח גם לא מטלפן Последний раз редактировалось alatar; 28.06.2011 в 18:07. |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 16
|
Спасибо. Похоже, рекурсия -- оптимальный вариант.
|
|
|||||
|
Регистрация: Mar 2011
Сообщений: 48
|
Смотря какого размера дерево
|
|
|||||
|
saprahan, вы полагаете, что курсор это делает каким-то магическим способом и будет работать быстрее?
Цитата:
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 48
|
Цитата:
Добавлено через 10 минут Есть дешевое промежуточное решение. Оно конечно не поможет автору темы, но очень здорово помогает справиться с большинством вопросов. Это две мапы uid->parent и uid->item, которые нужно создавать при смене сорса HCV. В самом HCV разумеется. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|