Re: [flexcoders] How to get the number of rows in a Tree or TreeDataProvider

2005-02-24 Thread Jeff Tapper
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:
I’m 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

2005-02-24 Thread Jeff Tapper
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

2005-02-24 Thread Tracy Spratt
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