package MyRenderers { import mx.collections.*; import mx.controls.treeClasses.*; public class MyTreeItemRenderer extends TreeItemRenderer { // Define the constructor. public function MyTreeItemRenderer() { super(); } // Override the set method for the data property // to set the font color and style of each node. override public function set data(value:Object):void { super.data = value; if(super.listData) { if(TreeListData(super.listData).hasChildren) { var xml:XMLList = new XMLList(TreeListData(super.listData).item); var xml2:XMLList = xml.elements(); if(xml2) { for each(var tmp:XML in xml2..*) { if(tmp.@current) { if(tmp.@current == 'current') { trace('current: ' + tmp.@name); setStyle('color', 0xff0000); setStyle('fontWeight', 'bold'); } } } } } } } // Override the updateDisplayList() method // to set the text for each tree node. override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); if(super.data) { if(TreeListData(super.listData).hasChildren) { var tmp:XMLList = new XMLList(TreeListData(super.listData).item); var myStr:int = tmp[0].children().length(); var item:String = 'item'; if(myStr != 1) { item += 's'; } super.label.text = TreeListData(super.listData).label + ' (' + myStr + ' ' + item + ')'; } } } } }