The Tree appears all collapsed. None of the branches that were previously open 
(listed under openItems) are expanded.

----- Original Message ----
From: Alex Harui <[EMAIL PROTECTED]>
To: flexcoders@yahoogroups.com
Sent: Wednesday, March 5, 2008 4:30:13 PM
Subject: RE: [flexcoders] How to maintain a Tree opened/close state after 
removed/added to stage?

                  






Could be a bug.  I don’t understand
why you re-set openItems after re-adding the Tree to the display list.  I doubt
we tested under those conditions.  What happens if you don’t reset
openItems.
   
 
From: [EMAIL PROTECTED] ups.com [mailto: [EMAIL PROTECTED] ups.com ] On Behalf 
Of ivo
Sent: Wednesday, March 05, 20081:42 PM
To: [EMAIL PROTECTED] ups.com
Subject: Re: [flexcoders] How tomaintain a Tree opened/close state after 
removed/added to stage?
 
  
 Not sure where to go withthis next.

The following kinda works...the Tree listens for Event.ADDED_ TO_STAGE thengo 
thru:

var _opened:Array = (m_tree.openItems as Array).concat( []);
tree.openItems = [];
callLater(reOpenIte ms, [_opened]);

...then in reOpenItems just:

m_tree.openItems = _opened;

..the above works as long as the Tree is kept with the branches in theirinitial 
open/closed state. So the first time the Tree is shown a certain set ofinitial 
branches are opened...the user dismisses the Tree...I remove it fromthe 
display....the user asks for the Tree view again...I readd the Tree &the above 
code runs & everything is ok as all its open like it wasinitially.

But if the user requests the Tree...closes a branch (or branches)... 
dismissesthe Tree..then later requests the Tree..I get an exception:

TypeError: Error #1010: A term is undefined and has no properties.
    at mx.controls: :List/createItem Renderer( )[E:\dev\ 3.0.x\frameworks 
\projects\ framework\ src\mx\controls\ List.as:1796]
    at mx.controls: :List/http://www.adobe. com/2006/ flex/mx/internal 
::getMeasuringRe nderer()[ E:\dev\3. 0.x\frameworks\ projects\ framework\ 
src\mx\controls\ List.as:1734]
    at mx.controls: :List/commitProp erties()[ E:\dev\3. 0.x\frameworks\ 
projects\ framewo!rk\ src\mx\controls\ List.as:764]
    at mx.controls: :Tree/commitProp erties()[ E:\dev\3. 0.x\frameworks\ 
projects\ framework\ src\mx\controls\ Tree.as:1028]
    at mx.core::UIComponen t/validateProper ties()[E: \dev\3.0. x\frameworks\ 
projects\ framework\ src\mx\core\ UIComponent. as:5670]

...the line \framework\src\ mx\controls\ List.as:1796 sez:

delete freeItemRenderersBy Factory[factory] [renderer] ;

and there really isnt a value for freeItemRenderersBy Factory[factory].  The 
var freeItemRenderersBy Factory does contain a single elementDictionary but the 
debugger wont reveal what its contents are.

What can cause this condition?



- Ivo


 ----- Original Message----
From: ivo <cervantes_vive@ yahoo.com>
To: f! [EMAIL PROTECTED] ups.com
Sent: Wednesday, March 5, 2008 11:47:01 AM
Subject: [flexcoders] How to maintain a Tree opened/close state 
afterremoved/added to stage?
 Hello all,

There is a behavior that is not apparent when building against Flex 3 beta 3but 
shows up of Flex 3 release.

I have a Tree that is added/removed from the stage at various times. In Beta 
3if I remove it from the display list & add it back at a later time the treeis 
with the branches opened/closed as they were when it was removed.

In the Flex Release the Tree always has all the branches closed once it isadded 
to the stage. Looking at the Tree properties shows Tree.openItems doeshave a 
correct list of open branches. Iterating over this list to to open them,or 
close then open, or saving this list when removedFromStage and setting itagain 
on addedToStage, or invalidating the display list does not do anything.My next 
shot is simulating mouse clicks on the renderers travelling from theoutermost 
branches inward but this feels like overkill.

Any suggestions on how to trigger the display so it matched the 
internalopen/closed state?

Thanks,

- Ivo
 

  
 






    
          
<!--

#ygrp-mkp{
border:1px solid #d8d8d8;font-family:Arial;margin:14px 0px;padding:0px 14px;}
#ygrp-mkp hr{
border:1px solid #d8d8d8;}
#ygrp-mkp #hd{
color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px 0px;}
#ygrp-mkp #ads{
margin-bottom:10px;}
#ygrp-mkp .ad{
padding:0 0;}
#ygrp-mkp .ad a{
color:#0000ff;text-decoration:none;}
-->

<!--

#ygrp-sponsor #ygrp-lc{
font-family:Arial;}
#ygrp-sponsor #ygrp-lc #hd{
margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;}
#ygrp-sponsor #ygrp-lc .ad{
margin-bottom:10px;padding:0 0;}
-->

<!--

#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