I did a hack to correct that bug for a 3 level tree.
In treegrid.as
protected function treeGridNodeClosed(event:TreeGridNodeEvent):void {
var cursor:IViewCursor = collection.createCursor();
var node:ITreeGridNode = event.node;
while (!cursor.afterLast) {
if (cursor.current == node) {
cursor.moveNext();
for each (var childNode:ITreeGridNode in node.children) {
for (var x:Object in node.children) {
if (node.children[x].open)
node.children[x].toggleOpen()
for (var i:Number = node.children[x].children.length;i > 0;i--) {
cursor.remove();
}
}
}
cursor.remove();
}
return;
} else {
//trace("else")
}
cursor.moveNext();
}
}
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
first, it's nice. but after you open all 3 level of the tree, then collapse the top level node, the level 3 node don't be collapsed.
I did a hack to correct that bug for a 3 level tree.
In treegrid.as
protected function treeGridNodeClosed(event:TreeGridNodeEvent):void {
var cursor:IViewCursor = collection.createCursor();
var node:ITreeGridNode = event.node;
while (!cursor.afterLast) {
if (cursor.current == node) {
cursor.moveNext();
for each (var childNode:ITreeGridNode in node.children) {
for (var x:Object in node.children) {
if (node.children[x].open)
node.children[x].toggleOpen()
for (var i:Number = node.children[x].children.length;i > 0;i--) {
cursor.remove();
}
}
}
cursor.remove();
}
return;
} else {
//trace("else")
}
cursor.moveNext();
}
}