But that will impact our application, because, with lazy fetches, we
sometimes have leaf = false and childCount = 0 (because the children
have not yet been fetched).  In such cases, we need the + icon to show,
because there are children yet to be fetched.  If we suppress the + sign
if either leaf = false or childCount = 0, then none of our nodes will
have + icons (because, at the beginning, nothing has been fetched).

Under what conditions was the previous fix failing?

- Brendan

-----Original Message-----
From: sean schofield (JIRA) [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, August 02, 2005 5:51 PM
To: [email protected]
Subject: [jira] Commented: (MYFACES-350) Use 'node.isLeaf()' in tree2 to
decide whether to display the navigation icon


    [
http://issues.apache.org/jira/browse/MYFACES-350?page=comments#action_12
317456 ] 

sean schofield commented on MYFACES-350:
----------------------------------------

OK this fix caused another problem (see related issue) so I made an
additional change:

bitMask += (node.isLeaf() || node.getChildCount() == 0) ? NOTHING :
CHILDREN;

This should still solve the original problem without causing any new
ones.

> Use 'node.isLeaf()' in tree2 to decide whether to display the
navigation icon
>
------------------------------------------------------------------------
-----
>
>          Key: MYFACES-350
>          URL: http://issues.apache.org/jira/browse/MYFACES-350
>      Project: MyFaces
>         Type: Improvement
>     Versions: Nightly Build
>  Environment: IBM RAS using MyFaces JSF implementation
>     Reporter: Brendan Conner
>     Priority: Minor
>      Fix For: Nightly Build

>
> I would like to suggest the following enhancement to Tree2 that would
make it more amenable to grabbing data "on the fly" as the user is
expanding nodes.  Here's the problem:
> Currently, Tree2 does not display the + navigation icon if the number
of child nodes is zero, regardless of whether there are children yet to
be fetched.  What I'd like to have happen is that the + navigation icon
is displayed only if the node is not a leaf node, regardless of whether
there are currently child nodes.
> In other words, I would like to have the following line in
HtmlRenderer.encodeNavigation() changed from:
>         bitMask += (node.getChildCount()>0) ? CHILDREN : NOTHING;
> to:
>         bitMask += (node.isLeaf) ? CHILDREN : NOTHING;
> If we make this change, then the application developer has more
control over whether the + navigation symbol appears, since the
application developer can override the isLeaf() method in the node
itself.
> Currently, the workaround is to override the node's getChildCount()
method to return the number of records *expected* if the user were to
request the fetch.  However, the "expected" number of records is not
always known, so, in these cases, getChildCount() would have to be coded
to return an arbitrary number greater than zero, which is kind of a
kluge.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to