FLEX

[FLEX] Tree 컴포넌트 생성시 트리 아이템 열기 FlexEvent.UPDATE_COMPLETE, expandItem

단순대왕 2008. 12. 2. 18:31

트리 데이터프로바이더 이후

바로 expandItem메소드를 사용할 경우 데이터가 아직 트리에 그려지지 않은 상태이므로

FlexEvent.UPDATE_COMPLETE 를 사용하여 업데이트를 감지한다.

FlexEvent.UPDATE_COMPLETE 는 코드힌트로 나오지 않을 수도있다. 그럴땐 FlexEvent. 찍으면 나옴!!

 i_tree.addEventListener(FlexEvent.UPDATE_COMPLETE, resultUpdateEventHandler);


업데이트는 여러번 실행될 수 있으므로 초기 실행시 업데이트리스너를 제거.

private function resultUpdateEventHandler(e:FlexEvent):void {

    i_tree.removeEventListener(FlexEvent.UPDATE_COMPLETE, resultUpdateEventHandler);

    var itemR:IListItemRenderer = i_tree.itemToItemRenderer((i_tree.dataProvider as 

    XMLListCollection).getItemAt(0));

    i_tree.expandItem(e.itemRenderer.data, true);

}

예>

import mx.events.ListEvent;

id_tree_device.addEventListener(FlexEvent.UPDATE_COMPLETE, expandTreeHandler);


public function expandTreeHandler(event:Event):void{

    var selNode:Object = new Object();

    id_tree_device.selectedIndex = 0;

    selNode = id_tree_device.selectedItem;

    id_tree_device.expandItem(selNode, true);

}


예2> 

expandTree(id_tree_process);

private function expandTree(tree:Tree):void{

    var obj:Object = new Object();

    obj = tree.dataProvider.getItemAt(0);

    tree.expandChildrenOf(obj, true);

}