<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Yeah, I didn't consider the other direction, that makes sense.</p>
<p>--John<br>
</p>
<div class="moz-cite-prefix">On 18/11/2022 18:28, Nir Lisker wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CA+0ynh8s0O3v8yTrTdJuw4PS5km5Hm98G5yFFgawX_mCb0K_zg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">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.</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Nov 18, 2022 at 11:12
AM John Hendrikx <<a href="mailto:john.hendrikx@gmail.com"
moz-do-not-send="true" class="moz-txt-link-freetext">john.hendrikx@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On 18/11/2022 00:10, Nir Lisker wrote:<br>
> Hi,<br>
><br>
> I have been working on fixing some issues with the
behavior <br>
> of CheckBoxTreeItem. I stumbled across this situation:<br>
><br>
> When a parent is de/selected, all of its children are set
to the same <br>
> state. However, a CheckBoxTreeItem can be set to
indeterminate <br>
> programmatically (the control itself does not allow
indeterminate). <br>
> Should all children also be set to an indeterminate
state? If so, this <br>
> will put the tree at an "invalid" state where leaf nodes
can be <br>
> indeterminate as well. OTOH, if not, then we are again at
an invalid <br>
> state if all children have the same state, but the parent
doesn't.<br>
<br>
I think the indeterminate state is best left up completely to
the owner <br>
of the control. You may need information that is not part of
the tree to <br>
actually determine if something is indeterminate or not. A
tree may be <br>
filtered, or a tree may represent only "nodes" while "leaves"
are <br>
displayed in a 2nd control as a list. This means that in
theory, parent <br>
nodes could be indeterminate even if all its children are in
the same <br>
state (checked/unchecked) due to filtering, and leaf nodes
could be <br>
indeterminate if they represent a directory while the file
selection is <br>
displayed in a separate control. In Backup software, a
directory may be <br>
partially selected if it has a filter associated with it (like
*.java) <br>
even if that directory is empty or has only Java files
currently...<br>
<br>
Some UI's will even allow you to click on an indeterminate
parent node <br>
to check it (checking all children), click again to uncheck it
<br>
(unchecked all children), and click a 3rd time to put it back
to an <br>
indeterminate state (restoring all children to the state they
had before <br>
the first click).<br>
<br>
--John<br>
</blockquote>
</div>
</blockquote>
</body>
</html>