... no more than selectedIndex is now;)

My final solution to this was to force the tree to always have its
branches open (it's small enough that this isn't too ugly). Then I use
 selectedIndex to reselect the last node the user selected before the
language change. I know it's kludgey. On with the show...


--- In [email protected], "hank williams" <[EMAIL PROTECTED]> wrote:
>
> openIndices, huh?  Isn't there a problem wherein "index" is linear,
but the
> > tree is hierarchical?
> >
> 
> Yes, it would be a rather fragile value.
> 
> 
> Hank.
> 
> ------------------------------
> >
> > *From:* [email protected]
[mailto:[EMAIL PROTECTED] *On
> > Behalf Of *Oliver Merk
> > *Sent:* Wednesday, January 03, 2007 9:35 PM
> > *To:* [email protected]
> > *Subject:* [flexcoders] Re: Tree: Resetting openItems after
dataProvider
> > change
> >
> >
> >
> > @Tracy & Hank: Thanks very much for the feedback and suggestions.
> > Tracy, I clearly understand that the data drives the behavior of the
> > tree. I do, however, disagree with Adobe's changes to the tree control
> > in Flex 2.
> >
> > Here's why: The concept of a node being opened or closed, has no
> > corollary in the ArrayCollection or XMLListCollection data structures.
> > That is, an ArrayCollection element has no concept of being "open".
> > This is a concept related to the Tree control. So the act of restoring
> > the open/closed state of a tree's nodes should IMHO be a lot easier
> > than jumping through the hoops we've all suggested.
> >
> > If, as I originally suggested, there was a openIndices property,
> > similar in concept to the openItems property which already exists, I'd
> > be able to restore the tree's visual appearance *independent* of the
> > data -- which, in my case of switching languages at runtime is exactly
> > what I need to do.
> >
> > I have achieved a working prototype by adding an attribute to the
> > branch nodes' XML, tracking the open and close events and recursing
> > through the data to restore the opened states after the data has
> > changed; but again, IMHO it should not be this hard;)
> >
> > Thanks again,
> > Oliver
> >
> > --- In [email protected] <flexcoders%40yahoogroups.com>,
"Tracy
> > Spratt" <tspratt@> wrote:
> > >
> > > Yes, Hank's solutionsis what I would do.
> > >
> > >
> > >
> > > Further, when you say "...Flex 2 tree control limits direct
access to
> > > nodes...", you make me suspect you are making a conceptual mistake.
> > > With data-driven controls, you never directly access the controls
> > > themselves. Rather, you work with the dataProvider, to which you
have
> > > full access.
> > >
> > >
> > >
> > > So in your case, you would have the unique id on each element(XML
> > > object/node) in your XMLListCollection, and you would store the open
> > > nodes in some list. I think an associative array(hash table)
would be
> > > the most efficient. The function to open those nodes would need
to be
> > > recursive. When your recursive function matches a node in the
> > > associative array, you would need to climb back up the tree,
parent by
> > > parent, opening each node as you go, till you reach an alrady
open node.
> > > Might be a bit more compilcated than that, since you want to
reach the
> > > end of a recursion branch before you stop searching.
> > >
> > >
> > >
> > > If you post an example of two sample matching xml docs, with the
above
> > > mentioned ids, I might try to implement this functionality as an
> > > example.
> > >
> > >
> > >
> > > Tracy
> > >
> > >
> > >
> > >
> > >
> > > ________________________________
> > >
> > > From: [email protected] <flexcoders%40yahoogroups.com>
[mailto:
> > [email protected] <flexcoders%40yahoogroups.com>] On
> > > Behalf Of hank williams
> > > Sent: Sunday, December 24, 2006 7:51 AM
> > > To: [email protected] <flexcoders%40yahoogroups.com>
> > > Subject: Re: [flexcoders] Tree: Resetting openItems after
dataProvider
> > > change
> > >
> > >
> > >
> > > I think you are on track with the idea of needing an "open indices"
> > > property. But indicices are a bit messy in a tree. what would be
best is
> > > a set of common unique identifiers. A field in each node that is
unique.
> > > This will allow you to build a function that creates a list of
the ids
> > > that are open, and another function that opens those nodes. The
nodes
> > > will have the same id no matter what language the actual text of the
> > > tree item is. gathering the ids from the open items, and opening the
> > > items that have a given list of ids should be relatively straight
> > > forward.
> > >
> > > Regards,
> > > Hank
> > >
> > > On 12/23/06, Oliver Merk <oliverm1@ <mailto:oliverm1@>
> > > > wrote:
> > >
> > > I've been wrestling with this for over a week and haven't found a
> > > solution to this problem. Hoping someone can help.
> > >
> > > I have a tree control that, at runtime, changes its dataProvider. In
> > > this case, I'm switching languages and the dataProvider format is
> > > XMLListCollection. I'd like to restore the open items of the tree
> > > after the dataProvider has changed. I tried using the openItems
> > > property, but openItems stores a list of XML objects from the
original
> > > dataProvider.
> > >
> > > When the provider changes, the XML objects are of course different,
> > > and trying to reset the openItems property fails. What I really need
> > > is an "openIndices" property that is not tied to the XML data in the
> > > provider.
> > >
> > > The example Adobe gives
> > > (http://www.adobe.com/devnet/flex/quickstart/working_with_tree/
> > > <http://www.adobe.com/devnet/flex/quickstart/working_with_tree/>
) is
> > > not helpful since they switch between two dataProviders with the
same
> > > content and they're using an ArrayCollection (I'm using an
> > > XMLListCollection).
> > >
> > > I've tried walking the tree but since the new Flex 2 tree control
> > > limits direct access to nodes, I could not find a way to detect the
> > > open indexes of the tree directly.
> > >
> > > Any ideas?
> > >
> > > Thanks,
> > > Oliver
> > >
> > >
> > >
> > > --
> > > Flexcoders Mailing List
> > > FAQ:
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > > <http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt>
> > > Search Archives:
> > > http://www.mail-archive.com/flexcoders%40yahoogroups.com
> > > <http://www.mail-archive.com/flexcoders%40yahoogroups.com>
> > > Yahoo! Groups Links
> > >
> > >
> > > (Yahoo! ID required)
> > >
> > >
mailto:[EMAIL PROTECTED]<flexcoders-fullfeatured%40yahoogroups.com>
> > >
<mailto:[EMAIL PROTECTED]<flexcoders-fullfeatured%40yahoogroups.com>
> > >
> > >
> >
> > 
> >
>


Reply via email to