Home | Flex examples | Flex Components | Tree | Flex, open tree nodes.Открываем узлы дерева. Part 1

Flex, open tree nodes.Открываем узлы дерева. Part 1

Font size: Decrease font Enlarge font
image

Open tree node. Part 1. Открытие одного из узлов дерева при нажатии на кнопку. Открывает один узел с параметрами, которые были введены в текстовые поля

Очень часто необходимо в приложениях использовать компонент Tree и нужно открывать его узлы. Представлю серию уроков для манипуляции с узлами дерева. В первом уроке будем использовать стандартный компонент Tree и в качестве DataProvider inline XML.

...< mx:XML id="treeProvider" xmlns="" >
< productgroup label='main group' id='0' price='0' >
< node label='Fantasy' id='0' price='0' >
< node label='The Lord of the rings' id='1' price='20'/ >
< node label='Alien' id='1' price='30'/ >
< node label='Star wars' id='1' price='40'/ >
< /node>...

Наш XML содержит в себе жанры фильмов, поджанры и собственно сами фильмы. Его мы будем использовать в качестве DataProvider. Узел содержит аттрибуты label (тут пишем название жанра или фильма), id (просто идентификатор, будем использовать его для отображения узлов дерева в компоненте) и price (это цена).

В дереве параметр showRoot ставим false, labelFunction назначаем функцию renderLabel (она будет нам отображать названия узлов дерева).

...< mx:Tree x="10" y="10" height="390" width="218" id="treeList" labelFunction="renderLabel" showRoot="false" >< /mx:Tree > ...

Теперь при событии приложения creationComplete инициализируем наше дерево функцией initTree(). Эта функция просто назначает DataProvider дерева.

...treeList.dataProvider = treeProvider;...

renderLabel(item:Object):String - отображает названия узлов дерева, возвращает строку, которая будет отображена

...var str:String;
if(item.@id == 1){
str = item.@label + ' - ' + item.@price + '$';
}else{
str = item.@label;
}
return str;...

При нажатии на кнопку open node вызываем функцию openTree(event:MouseEvent).

В ней сначала ищем нужный узел - findNodeById(), а expandParents(xmlNode:XML) открывает найденный узел и всех его родителей.

Эти строчки

...indexRenderer = treeList.itemToItemRenderer(indexNode);
if(indexRenderer != null)
treeList.selectedIndex = treeList.itemRendererToIndex(indexRenderer);...

выделяют выбранный узел.

Исходники - source, приложение - application

 

 

Comments ( posted):

Post your comment comment

Please enter the code you see in the image:

  • email Email to a friend
  • print Print version
  • Plain text Plain text
Tags
No tags for this article
Rate this article
4.50