CheckBoxTreeItem behavior
John Hendrikx
john.hendrikx at gmail.com
Fri Nov 18 20:12:25 UTC 2022
Yeah, I didn't consider the other direction, that makes sense.
--John
On 18/11/2022 18:28, Nir Lisker wrote:
> I think that even if a node is set to indeterminate programmatically,
> its parents should be updated at the very least (unless it's set to be
> independent). Not updating the children seems reasonable.
>
> On Fri, Nov 18, 2022 at 11:12 AM John Hendrikx
> <john.hendrikx at gmail.com> wrote:
>
>
> On 18/11/2022 00:10, Nir Lisker wrote:
> > Hi,
> >
> > I have been working on fixing some issues with the behavior
> > of CheckBoxTreeItem. I stumbled across this situation:
> >
> > When a parent is de/selected, all of its children are set to the
> same
> > state. However, a CheckBoxTreeItem can be set to indeterminate
> > programmatically (the control itself does not allow indeterminate).
> > Should all children also be set to an indeterminate state? If
> so, this
> > will put the tree at an "invalid" state where leaf nodes can be
> > indeterminate as well. OTOH, if not, then we are again at an
> invalid
> > state if all children have the same state, but the parent doesn't.
>
> I think the indeterminate state is best left up completely to the
> owner
> of the control. You may need information that is not part of the
> tree to
> actually determine if something is indeterminate or not. A tree
> may be
> filtered, or a tree may represent only "nodes" while "leaves" are
> displayed in a 2nd control as a list. This means that in theory,
> parent
> nodes could be indeterminate even if all its children are in the same
> state (checked/unchecked) due to filtering, and leaf nodes could be
> indeterminate if they represent a directory while the file
> selection is
> displayed in a separate control. In Backup software, a directory
> may be
> partially selected if it has a filter associated with it (like
> *.java)
> even if that directory is empty or has only Java files currently...
>
> Some UI's will even allow you to click on an indeterminate parent
> node
> to check it (checking all children), click again to uncheck it
> (unchecked all children), and click a 3rd time to put it back to an
> indeterminate state (restoring all children to the state they had
> before
> the first click).
>
> --John
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20221118/e4b40ddd/attachment-0001.htm>
More information about the openjfx-dev
mailing list