Thanks a lot Alex,

  That worked fine for me..

Mars

--- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote:
>
> A Tree's icons must be embedded images.  It doesn't have code to load
> external images.  You can customize a renderer to do so.
> 
>  
> 
> ________________________________
> 
> From: [email protected] [mailto:[EMAIL PROTECTED] On
> Behalf Of sk_acura
> Sent: Friday, July 18, 2008 6:33 AM
> To: [email protected]
> Subject: [flexcoders] Re: How to create dynamically Icon for a Tree
> 
>  
> 
> Hi,
> 
> Is there a way we can use the iconFunction on tree and specify the
> Icon at runtime..
> 
> Here is the Code i am trying to use..
> 
> [CODE]
> private function getNodeIcon(nodeObject:Object):Class{
> var nodeIcon:Class = null;
> var node:Node = null;
> var iconURL = "http://localhost/myapp/icons/folder_yellow.png
> <http://localhost/myapp/icons/folder_yellow.png> ";
> trace("IconURL (1) =["+iconURL+"]");
> 
> if(nodeObject!=null){
> node =Node (nodeObject);
> trace("Node ="+node);
> nodeIcon = IconUtility.getClass(collectionTree, iconURL, 12, 12);
> if(node.iconURL!=null && node.iconURL!="null"){
> trace("Icon for Node ="+node.iconURL);
> iconURL ="http://localhost/myapp/icons/ <http://localhost/myapp/icons/>
> "+node.iconURL;
> trace("IconURL (2)=["+iconURL+"]");
> nodeIcon = IconUtility.getClass(collectionTree, iconURL, 12, 12);
> }
> }
> trace("Returning the Class ="+nodeIcon);
> return nodeIcon;
> }
> [/CODE]
> 
> And in the MXML i have the following..
> 
> [CODE]
> <mx:Tree id="collectionTree" labelFunction="treeLabel"
> dataProvider="{domainArrayCollection}"
> showRoot="false" width="100%" height="100%"
> change="getNodeInfo(event)"
> iconFunction="getNodeIcon">
> </mx:Tree>
> [/CODE]
> 
> I am not sure what went wrong i am setting the icon propery in the
> Node Object and i can get these icons when i type the URL in the
> browser but in the tree i don't see any icons..
> 
> I am using the Utility Class that Ben Stucki wrote (
> http://blog.benstucki.net/?p=42 <http://blog.benstucki.net/?p=42> )
> 
> Thanks
> Mars
> 
> --- In [email protected] <mailto:flexcoders%40yahoogroups.com>
> , "bodie0293" <ranaurop@> wrote:
> >
> > 
> > This may not be the most efficient method, but this is how I
> > populate a dynamic tree and assign icons.
> > 
> > Preliminaries:
> > 
> > The Tree has 3 levels: User, Project, and Hours. The tree
> > entries are represented as ActionScript classes (not shown).
> > These classes have a superclass of BaseTreeEntry that contains
> > two fields: label, and children. Each tree level has a different
> > icon. Icons are embedded.
> > 
> > In a real application the data model would have been obtained
> > from the server. I have represented these here as 3 <mx:Model>
> > components for simplicity.
> > 
> > Here is the example.
> > 
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml
> <http://www.adobe.com/2006/mxml> "
> > layout="absolute"
> > creationComplete="init()" >
> > 
> > <mx:Script>
> > <![CDATA[
> > import tree.BaseTreeEntry;
> > import tree.UserTreeEntry;
> > import tree.ProjectTreeEntry;
> > import tree.HoursTreeEntry;
> > 
> > import mx.collections.ArrayCollection;
> > 
> > [Bindable]
> > public var selectedNode : BaseTreeEntry;
> > 
> > [Bindable]
> > [Embed(source="/images/person.jpg")]
> > public var iconPerson:Class;
> > [Bindable]
> > [Embed(source="/images/project.jpg")]
> > public var iconProject:Class;
> > [Bindable]
> > [Embed(source="/images/hours.jpg")]
> > public var iconHours:Class;
> > 
> > [Bindable]
> > public var treeNodes : ArrayCollection = new
> > ArrayCollection();
> > 
> > // Event handler for the Tree control change event.
> > public function treeChanged(event:Event):void {
> > selectedNode=Tree(event.target).selectedItem as
> > BaseTreeEntry;
> > }
> > 
> > public function init() : void {
> > for (var i : int = 0; i < userDataModel.User.length;
> > i++) {
> > var userVO : Object = userDataModel.User[i];
> > var userTreeEntry : UserTreeEntry = new
> > UserTreeEntry();
> > userTreeEntry.label = userVO.LastName + ", " +
> > userVO.FirstName;
> > userTreeID.setItemIcon(userTreeEntry, iconPerson,
> > null);
> > treeNodes.addItem(userTreeEntry);
> > for (var j : int = 0; j <
> > projectDataModel.Project.length; j++) {
> > var projectVO : Object =
> > projectDataModel.Project[j];
> > var projectTreeEntry : ProjectTreeEntry = new
> > ProjectTreeEntry();
> > projectTreeEntry.label = projectVO.Name;
> > userTreeID.setItemIcon(projectTreeEntry,
> > iconProject, null);
> > 
> > userTreeEntry.children.addItem(projectTreeEntry);
> > for (var k : int = 0; k <
> > hoursDataModel.Hours.length; k++) {
> > var hoursVO : Object =
> > hoursDataModel.Hours[k];
> > if (hoursVO.UserID == userVO.UserID &&
> > hoursVO.ProjectID ==
> > projectVO.ProjectID) {
> > var hoursTreeEntry : HoursTreeEntry =
> > new HoursTreeEntry();
> > hoursTreeEntry.label = "Week: " +
> > hoursVO.WeekID;
> > userTreeID.setItemIcon(hoursTreeEntry,
> > iconHours, null);
> > 
> > projectTreeEntry.children.addItem(hoursTreeEntry);
> > }
> > }
> > }
> > }
> > }
> > 
> > ]]>
> > </mx:Script>
> > 
> > <mx:Model id="userDataModel" >
> > <root>
> > <User>
> > <UserID>1</UserID>
> > <UserName>caradmin</UserName>
> > <LastName>Vanderlay</LastName>
> > <FirstName>Art</FirstName>
> > <MiddleInit>J</MiddleInit>
> > <Title>CAR Administrator</Title>
> > <HireDate>10/12/2004</HireDate>
> > <TermDate></TermDate>
> > </User>
> > <User>
> > <UserID>2</UserID>
> > <UserName>joe</UserName>
> > <LastName>Estudiente</LastName>
> > <FirstName>Joe</FirstName>
> > <MiddleInit>L</MiddleInit>
> > <Title>CAR User</Title>
> > <HireDate>01/13/1992</HireDate>
> > <TermDate>04/20/2007</TermDate>
> > </User>
> > </root>
> > </mx:Model>
> > 
> > <mx:Model id="projectDataModel" >
> > <root>
> > <Project>
> > <ProjectID>1001</ProjectID>
> > <Name>Project Number 1</Name>
> > <Description>Desc. for Project 1</Description>
> > </Project>
> > <Project>
> > <ProjectID>1002</ProjectID>
> > <Name>Project Number 2</Name>
> > <Description>Desc. for Project 2</Description>
> > </Project>
> > </root>
> > </mx:Model>
> > 
> > <mx:Model id="hoursDataModel" >
> > <root>
> > <Hours>
> > 
> > <ProjectPersonWeekHoursID>5001</ProjectPersonWeekHoursID>
> > <ProjectID>1001</ProjectID>
> > <UserID>1</UserID>
> > <WeekID>87</WeekID>
> > <Description>blah blah</Description>
> > <Mon>8</Mon>
> > <Tue>8</Tue>
> > <Wed>8</Wed>
> > <Thu>8</Thu>
> > <Fri>8</Fri>
> > <Sat>0</Sat>
> > <Sun>0</Sun>
> > </Hours>
> > <Hours>
> > 
> > <ProjectPersonWeekHoursID>5002</ProjectPersonWeekHoursID>
> > <ProjectID>1002</ProjectID>
> > <UserID>1</UserID>
> > <WeekID>88</WeekID>
> > <Mon>8</Mon>
> > <Tue>8</Tue>
> > <Wed>8</Wed>
> > <Thu>8</Thu>
> > <Fri>8</Fri>
> > <Sat>0</Sat>
> > <Sun>0</Sun>
> > </Hours>
> > </root>
> > </mx:Model>
> > 
> > <mx:HDividedBox width="100%" height="100%">
> > 
> > <mx:Tree id="userTreeID"
> > dataProvider="{treeNodes}"
> > width="30%" height="100%"
> > change="treeChanged(event)"
> > >
> > </mx:Tree>
> > 
> > <mx:TextArea height="100%" width="70%"
> > text="Selected Item: {selectedNode.label}"/>
> > </mx:HDividedBox>
> > 
> > </mx:Application>
> > 
> > Paul Ranauro
> > pranauro@
> >
>


Reply via email to