I implemented my tree using ArrayCollection for the data provider but the 
elements were simple objects...I would add deeper levels by manipulating the 
objects thru references rather than thru the dataprovider itself....

var tree:Tree = new Tree();
var hashOfNodes:Object = new Object();
var dpArray:Array = new Array();

var node1:Object = {id: someId1, label: nodeName1, children[] };
var node2:Object = {id: someId2, label: nodeName2, children[] };
var node3:Object = {id: someId3, label: nodeName3, children[] };
hashOfNodes[node1.id] = node1;
hashOfNodes[node2.id] = node2;
hashOfNodes[node3.id] = node3;

dpArray.push(node1);
dpArray.push(node2);
dpArray.push(node3);

tree.dataProvider = ArrayCollection(dpArray):

....later when adding children to a node (say node2) I would do:

var childNode:Object = {id: someIdChild, label: nodeNameChild, children[] };
hashOfNodes[childNode.id] = childNode;

var targetNode:Object = hashOfNodes[node2.id] ;
targetNode.children = [childNode];

So I would only set the dataProvider with the root nodes of the tree but 
manipulate the nodes thru the references kept under hashOfNodes .

Hope this helps & its clear enough,

Ivo

----- Original Message ----
From: Matt <[EMAIL PROTECTED]>
To: flexcoders@yahoogroups.com
Sent: Thursday, May 17, 2007 1:26:08 PM
Subject: [flexcoders] Trees and ActionScript









  


    
            I am trying to programmatically build and manipulate a Tree entirely

in ActionScript and I'm having serious issues doing so.



I've tried various ways of doing it but currently my failed code looks

like:



var t:Tree = new Tree();

var dp:XMLListCollectio n = new XMLListCollection( );

var o1:XML = <node label='Testing' />;

dp.addItem(o1) ;

t.dataProvider = dp;



Ideally I'd like to use only Objects.  I've been able to make it work

thus far by just having a dataProvider as ArrayCollection and adding

Objects to it, but then I have no way of adding branches and I end up

with a 1-deep tree.



Any advice or references are appreciated. I've gone through the

flexdocs and they offer a few examples that seem to almost be talking

about what I'm trying to do, but they don't work.





    
  

    
    




<!--

#ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, 
sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;}
#ygrp-vitnav{
padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
#ygrp-vitnav a{
padding:0 1px;}
#ygrp-actbar{
clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;}
#ygrp-actbar .left{
float:left;white-space:nowrap;}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;font-size:77%;padding:15px 0;}
#ygrp-ft{
font-family:verdana;font-size:77%;border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;}

#ygrp-vital{
background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
#ygrp-vital #vithd{
font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
#ygrp-vital ul{
padding:0;margin:2px 0;}
#ygrp-vital ul li{
list-style-type:none;clear:both;border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
#ygrp-vital ul li .cat{
font-weight:bold;}
#ygrp-vital a {
text-decoration:none;}

#ygrp-vital a:hover{
text-decoration:underline;}

#ygrp-sponsor #hd{
color:#999;font-size:77%;}
#ygrp-sponsor #ov{
padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;margin:0;}
#ygrp-sponsor #ov li{
list-style-type:square;padding:6px 0;font-size:77%;}
#ygrp-sponsor #ov li a{
text-decoration:none;font-size:130%;}
#ygrp-sponsor #nc {
background-color:#eee;margin-bottom:20px;padding:0 8px;}
#ygrp-sponsor .ad{
padding:8px 0;}
#ygrp-sponsor .ad #hd1{
font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
#ygrp-sponsor .ad a{
text-decoration:none;}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;}
#ygrp-sponsor .ad p{
margin:0;}
o {font-size:0;}
.MsoNormal {
margin:0 0 0 0;}
#ygrp-text tt{
font-size:120%;}
blockquote{margin:0 0 0 4px;}
.replbq {margin:4;}
-->





Reply via email to