package data.trees { import data.Tree; import mx.events.CollectionEvent; public class ServerTree extends Tree { private function createList() : XMLList { var servers:XMLList = new XMLList(); for each(var element:XML in dataSource.servers.source) { servers += dataSource.getRef(element); } return servers; } protected override function serversChanged(event:CollectionEvent) : void { if(event.kind == "remove" || event.kind == "add") { collection.getItemAt(0).setChildren(createList()); } } public override function buildTree() : void { super.buildTree(); var servers:XML = servers.setChildren(createList()); collection.addItem(servers); } } }