iTwin / viewer-components-react

Components built on iTwin.js for usability in an iTwin.js based Viewer.
MIT License
24 stars 34 forks source link

Tree widget: category child nodes not hidden on Models tree when category node is toggled off #1018

Closed wilmaier closed 1 month ago

wilmaier commented 2 months ago

Even though all category nodes are toggled off, the sub nodes are still visibile

image

grigasp commented 2 months ago

@wilmaier, this is most likely because the child elements have different category than their parent element, but this is not visible because Models tree doesn't show category nodes for child elements.

To determine or control visibility of child elements, we'd need to query elements whose either parent or model id is the parent node. However, there are a number of UX issues related to this. To name a couple:

  1. A category may be used at multiple hierarchy levels:

    - Category A
     - Element X
    - Category B
     - Element Y
       - Element Z (child of Y, has category A)

    Let's say visibility of Category B and Element Y in our display system is "on", but the tree shows them in "partial", because Element Z is not displayed due to Category A being turned off in display system. So in the tree Category A is "off" and Category B is "partial". Now user turns on Category A, which means Element X becomes visible, which in turn means Element Y and Category B should be displayed as "on" in the tree. So, while user clicked only on Category A, a completely different sibling branch got affected as well - that doesn't sound like a good UX to me.

  2. Both parent and its children may have geometry. Let's say we have this situation:

    - Element A
     - Element B

    Let's say in display system Element B is turned off and Element A is turned on. What state should Element A have in the tree? It's kind of "on", because Element A has its own geometry and it's displayed. But we want to show that its child is hidden, so maybe it should be "partial"? Things get more complicated if we consider that categories of those elements may be different.

I think all of these are UX questions and would be more than happy to hear any suggestions on how to make it work in a user friendly way. There're, of course, performance questions to consider, but first we need to know what we want to achieve.

grigasp commented 1 month ago

@wilmaier, are you planning to pursue a UX solution for this problem or should we just close the issue?

grigasp commented 1 month ago

This has been inactive for more than 2 weeks, closing the issue. Please reopen or create a new issue if you got any suggestions.