Re: [flexcoders] How to get the number of rows in a Tree or TreeDataProvider
Its a bit hackish, but you could try something like this: function openTree(t:mx.controls.Tree):Number { var i:Number=0; var node:mx.controls.treeclasses.TreeNode=t.getTreeNodeAt(i); while (node != undefined){ if (t.getIsBranch(node) ! t.getIsOpen(node)){ t.setIsOpen(node,true); } i++; node=t.getNodeDisplayedAt(i); } return i; } This will open all the nodes, and return the total number of nodes throughout the tree. You'd have to work it a bit more to do this and not open them all. At 01:23 PM 2/24/2005, you wrote: Im using the PrintDemo.mxml example to do the same thing for a Tree, but the TreeDataProvider does not have a length property. I think I can write a recursive function that finds the last Child last child, then getDisplayIndex. But first, am I missing any property/method on Tree or TreeDataProvider that will give me a total row count? Tracy Yahoo! Groups Sponsor ADVERTISEMENT http://us.ard.yahoo.com/SIG=129hlpapj/M=298184.6018725.7038619.3001176/D=groups/S=1705007207:HM/EXP=1109354828/A=2593423/R=0/SIG=11el9gslf/*http://www.netflix.com/Default?mqso=60190075 click here -- Yahoo! Groups Links * To visit your group on the web, go to: * http://groups.yahoo.com/group/flexcoders/http://groups.yahoo.com/group/flexcoders/ * * To unsubscribe from this group, send an email to: * mailto:[EMAIL PROTECTED][EMAIL PROTECTED] * * Your use of Yahoo! Groups is subject to the http://docs.yahoo.com/info/terms/Yahoo! Terms of Service. inline: f8bf0d0.jpg
Re: [flexcoders] How to get the number of rows in a Tree or TreeDataProvider
Hows this for an alternative if you want the count, but dont want the tree to be opened. I've only tested this with small trees, I'd fear for its performance in larger trees: function countClosed():Number{ var num:Number = openTree(nav); closeTree(nav,num); return num; } function openTree(t:mx.controls.Tree):Number { var i:Number=0; var node:mx.controls.treeclasses.TreeNode=t.getTreeNodeAt(i); while (node != undefined){ if (t.getIsBranch(node) ! t.getIsOpen(node)){ t.setIsOpen(node,true); } i++; node=t.getNodeDisplayedAt(i); } return i; } function closeTree(t:mx.controls.Tree,numNodes:Number){ for(var i=0;inumNodes;i++){ var node:mx.controls.treeclasses.TreeNode=t.getTreeNodeAt(i); if (t.getIsBranch(node) t.getIsOpen(node)){ t.setIsOpen(node,false); } } t.selectedIndex = null; }
RE: [flexcoders] How to get the number of rows in a Tree or TreeDataProvider
I modified that while loop to just do a count, and it works fine, with the added benefit that it only counts the nodes that are open, which is really what I need. Thanks! public function getTreeVisibleRowCount(treeControl:Tree):Number { var treeDP = treeControl.dataProvider; var i:Number=0; var iVisibleRowCount:Number = 0; var treenodeCur:TreeNode = treeDP.getTreeNodeAt(i); while (treenodeCur != undefined){ if (treeControl.getIsOpen(treenodeCur) ){ iVisibleRowCount ++; } i++; treenodeCur=treeControl.getNodeDisplayedAt(i); } return iVisibleRowCount; }//getTreeVisibleRowCount -Original Message- From: Jeff Tapper [mailto:[EMAIL PROTECTED] Sent: Thursday, February 24, 2005 1:27 PM To: flexcoders@yahoogroups.com Subject: Re: [flexcoders] How to get the number of rows in a Tree or TreeDataProvider Hows this for an alternative if you want the count, but dont want the tree to be opened. I've only tested this with small trees, I'd fear for its performance in larger trees: function countClosed():Number{ var num:Number = openTree(nav); closeTree(nav,num); return num; } function openTree(t:mx.controls.Tree):Number { var i:Number=0; var node:mx.controls.treeclasses.TreeNode=t.getTreeNodeAt(i); while (node != undefined){ if (t.getIsBranch(node) ! t.getIsOpen(node)){ t.setIsOpen(node,true); } i++; node=t.getNodeDisplayedAt(i); } return i; } function closeTree(t:mx.controls.Tree,numNodes:Number){ for(var i=0;inumNodes;i++){ var node:mx.controls.treeclasses.TreeNode=t.getTreeNodeAt(i); if (t.getIsBranch(node) t.getIsOpen(node)){ t.setIsOpen(node,false); } } t.selectedIndex = null; } Yahoo! Groups Links