Mathias (and other interested parties),

Check out the latest SVN code and let me know what you think about the
expandAll stuff.   I'm also moving this conversation to MYFACES-353
(http://issues.apache.org/jira/browse/MYFACES-353) since it's best to
keep track of this in JIRA.  (Please add yourself as a watcher so we
can communicate via JIRA.)

sean

On 8/10/05, Sean Schofield <[EMAIL PROTECTED]> wrote:
> I'm working on a expandAll method for UITreeData now.  There is an
> interesting issue here.  You can't expand all of the nodes until the
> tree has been fully populated.  So when does this method get called?
> 
> My first reaction is that you could make your backing bean a Shale
> ViewController and bind the tree to it.  Then in the prerender()
> method you would call expandAll().  Make sense?  Not sure if you're
> familiar with Shale, but you should become familiar with it if you're
> not :-)
> 
> sean
> 
> On 8/10/05, Sean Schofield <[EMAIL PROTECTED]> wrote:
> > I agree that the TreeState should not have a reference to the
> > TreeModel.  I'd like to avoid even the local reference suggestion as
> > well.
> >
> > IMO, TreeState should only keep track of the expanded state (and
> > eventually selected state but I'm waiting on that b/c I think the
> > solutions will be the same.)  So this means that if you want to expand
> > all of the nodes, some other object will have to be call
> > toggleExpanded.  The question then becomes which class should do this?
> >
> > I agree that its a little awkward for TreeModel to do this.  It
> > probably makes the most sense to have UITreeData get the model, get
> > the state and then toggle all of the nodes.  We could have UITreeData
> > use the expandEverything private method that walks the whole node
> > tree.  What about that?
> >
> > Also, you mentioned the nodeId scheme.  Currently it assumes a format
> > of "0:1:2", etc. Do you see a problem with requiring the nodes to have
> > a standard numbering scheme like this?  Its hard to see the advantage
> > of allowing the user to configure there own.  It might not even be
> > possible to have the renderers work in such a general manner.  I think
> > I'm confortable with leaving it this way but I'm curious to see what
> > others think.
> >
> > sean
> >
> >
> > On 8/10/05, [EMAIL PROTECTED]
> > <[EMAIL PROTECTED]> wrote:
> > >
> > >
> > > [EMAIL PROTECTED] schrieb am 10.08.2005 00:06:08:
> > >
> > >  > @Mathias,
> > >  >
> > >  > Looks good.  I made a few tweaks (mostly formatting changes) and
> > >  > committed.  I also changed the examples back the way they were before
> > >  > the model change.
> > >
> > > I'm glad that its working :) It was more a proof of concept than a final
> > > implementation.
> > >
> > >  >
> > >  > I like your idea of optionally persisting the TreeState.  At some
> > >  > point, I may want to update one of the simple examples and have this
> > >  > point to a bean with session scope so we can show users how this
> > >  > option works.
> > >
> > > I hope this gives us more flexibility concerning the tree state and
> > > still supports the old behaviour.
> > >
> > >  >
> > >  > The expandAll problem is an interesting one.  What do you think about
> > >  > the TreeState having a ref to the model?  This would seem to be
> > >  > necessary if you wanted to update the state through the TreeState
> > >  > class.  Another possibility is moving this method back to TreeModel
> > >  > which could iterrate through the list of all nodes, and call
> > >  > toggleExpanded on the  TreeState.  I kind of prefer this approach as
> > >  > it leaves the two decoupled.
> > >
> > > This problem is a bit tricky. Somehow the two (model and state) are closly
> > > related,
> > > as the state is specific for a given model but we want to decouple it.
> > >
> > > My opinion is that the state should NOT have a object reference to the
> > > model.
> > > Saving it with the tree state would include saving the model along. That
> > > would be bad.
> > > Okay we could make this poperty transient or implement a custom
> > > serialization?!
> > >
> > > We could provide the model in the expandAll method so its only a local
> > > referece.
> > > That should work.
> > >
> > > Putting back the method to the model is a good idea, although the function
> > > is really related to the model
> > > - more to the state.
> > >
> > >
> > > Well this a a more general problem, because we have two different ways of
> > > referencing a node and the model has to mediate between these two.
> > > At the moment it does this only one way ("nodepath" or nodeid -> 
> > > TreeNode).
> > > As I understand the code the way from TreeNode to "nodepath" is put at
> > > different places also in the renderer.
> > >
> > > I saw that you closed the MYFACES-361. There is a relation to this problem
> > > regarding the TreeModel.
> > >
> > >
> >
>

Reply via email to