Grande Hamad,
Oh well, creio que a única maneira de definir os ícones para cada
estado (open, close) é usando o método "myTree.setItemIcon". Por
razões que uma análise mais de perto você o fará compreender (preguiça
de explicar :-D), isto não funcionaria com o "iconFunction". Assim,
lancei mão do "labelFunction" para resolver o problema.
Portanto, use este "labelFunction" e esqueça o "iconFunction":
private function treeLabelFunction(item:Object):String
{
var recordType:String = [EMAIL PROTECTED];
switch (recordType)
{
case "folder":
myTree.setItemIcon(item, folderIcon, folderOpenIcon);
break;
case "course":
myTree.setItemIcon(item, courseIcon, courseOpenIcon);
break;
default:
myTree.setItemIcon(item, moduleIcon, moduleIcon);
break;
}
return [EMAIL PROTECTED];
}
[]'s
Beck Novaes
On 23 maio, 10:22, Hamad Amaral <[EMAIL PROTECTED]> wrote:
> Pessoal,
>
> No código abaixo eu altero os ícones padrão de uma Tree (folder e
> document) conforme o tipo do "node" através da função
> "treeNodeIconFunction" entretanto não descobri como fazer distinção
> entre folders abertos e fechados para usar ícones diferentes para
> estes estados.
>
> Normalmente as propriedades folderOpenIcon e folderClosedIcon
> resolveriam o problema, a questão é que na aplicação eu tenho 2 tipos
> de "folders". Ou seja, precisaria retornar na função
> "treeNodeIconFunction" 2 ícones, um para folder aberto e outro para o
> folder fechado.
>
> Agradeço a ajuda.
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
> initialize="onInit()">
> <mx:Script>
> <![CDATA[
> import mx.collections.XMLListCollection;
>
> [Bindable]
> [Embed(source="/assets/images/folder.png")]
> private var folderIcon:Class;
>
> [Bindable]
> [Embed(source="/assets/images/folder_o.png")]
> private var folderOpenIcon:Class;
>
> [Bindable]
> [Embed(source="/assets/images/course.png")]
> private var courseIcon:Class;
>
> [Bindable]
> [Embed(source="/assets/images/course_o.png")]
> private var courseOpenIcon:Class;
>
> [Bindable]
> [Embed(source="/assets/images/module.png")]
> private var moduleIcon:Class;
>
> [Bindable]
> private var coursesList:XML =
> <list><node objectID="6" name="CF"
> parentID="1" recordType="course"><node objectID="7" name="CFC" parentID="6"
> recordType="module"/><node objectID="8" name="CFAdmin" parentID="6"
> recordType="module"/><node objectID="9" name="CFML" parentID="6"
> recordType="module"/><node objectID="10" name="CFSCRIPT" parentID="6"
> recordType="module"/></node><node objectID="2" name="DataBase" parentID="1"
> recordType="folder"><node objectID="3" name="Oracle" parentID="2"
> recordType="course"><node objectID="4" name="PLSQL" parentID="3"
> recordType="module"/><node objectID="5" name="SP" parentID="3"
> recordType="module"/></node></node></list> ;
>
> [Bindable]
> private var courses:XMLListCollection;
>
> private function onInit():void
> {
> courses = new
> XMLListCollection(coursesList.node);
> }
>
> private function treeNodeIconFunction(item:XML):Class
> {
> var recordType:String = [EMAIL PROTECTED];
>
> switch (recordType)
> {
> case "folder":
> return folderIcon;
> break;
> case "course":
> return courseIcon;
> break;
> default:
> return moduleIcon;
> break;
>
> }
> }
>
> ]]>
> </mx:Script>
>
> <mx:Tree id="myTree" dataProvider="{courses}" labelField="@name"
> width="200" showRoot="false" height="300"/>
>
> </mx:Application>
>
> --
> Hamad Amaral
> [EMAIL PROTECTED]
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---