I am working on a tree component and I am having a bit of the issue with
populating the data-provider for this tree.
The data that I get back from my database is a simple array of value
objects. Each value object has 2 properties. ObjectID and ParentID. For
parents the ParentID is null and for children the ParentID is the
ObjectID of the parent.
Any help with this is greatly appreciated.
Essentially the tree should look something like this:
Parent1 Child1 Child1 Child2 Child1
Child2 Parent2 Child1 Child2 Child3 Child1
This is the current code that I am testing with:
public function setDataProvider(data:Array):void { var
tree:Array = new Array(); for(var i:Number = 0; i < data.length;
i++) { // do the top level array if(!data[i].parentID)
{ tree.push(data[i], getChildren(data[i].objectID, data)); }
} function getChildren(objectID:Number, data:Array):Array {
var childArr:Array = new Array(); for(var k:Number = 0; k <
data.length; k++) { if(data[k].parentID == objectID) {
childArr.push(data[k]); //getChildren(data[k].objectID, data);
} } return childArr; }
trace(ObjectUtil.toString(tree)); }
Here is a cross section of my data:
ObjectID ParentID 1 NULL 10 NULL
8 NULL 6 NULL 4 6 3 6 9
6 2 6 11 7 7 8 5 8