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: [email protected]
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;}
-->