Tree control is using internally by default an
mx.controls.treeClasses.DefaultDataDescriptor (you're changing this by 
assigning another implementation object to the Tree's dataDescriptor property) 
object to get children for a node
etc., I advise you to look at its getChildren() method implementation (flex is
open source!). You'll need either to implement ITreeDataDescriptor interface or
extend DefaultDataDescriptor and override getChildren() in case if you have
in the node a property for children other that 'children' (by default it looks
for the node's children in a 'children' property of your node). (Most probably
you'll have to implement ITreeDataDescriptor interface, again, look at
DefaultDataDescriptor implementation and decide how much code you can reuse
there, if not much or at all, consider a new implementation approach)
Suppose you have this folder implementation:
class Folder
{
public var label:String;
public var documents:ArrayCollection;

...
}

your getChildren() implementation we'll look something like this:

public function getChildren(node:Object, model:Object=null):ICollectionView
{
if (node is Folder)
{
return node.documents as ICollectionView;
}

...
}

good luck!

Reply via email to