Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tree Widget: Selection tree component #362

Closed
grigasp opened this issue Jun 3, 2022 · 1 comment
Closed

Tree Widget: Selection tree component #362

grigasp opened this issue Jun 3, 2022 · 1 comment
Labels
enhancement New feature or request tree widget Tree widget or its components related issues wontfix This will not be worked on

Comments

@grigasp
Copy link
Member

grigasp commented Jun 3, 2022

Proposal for a Selection Tree component

Problems

When an element is selected, it's impossible see its context in one place - model, category, parent elements, child elements. Model, category and the immediate parent can be checked in the Property Grid component, but they're not interactive (you can't do anything with them except view their labels) and you can only see child elements in the Models Tree component, but that requires finding the selected element in the hierarchy, which could be an impossible task in large iModels.

In addition, not being able to see and/or interact with selected element's ancestor and child elements takes away a convenient way to adjust selection, which is especially important when there are non-graphical ancestors with properties that users want to see.

Suggestion

The suggestion is to introduce a new Selection Tree component that could become part of the Visibility Widget.

Hierarchy

The important part is to show selected element's Model, Category, ancestors and possibly child elements. How it's going to be set up is TBD. A couple of ideas:

  • Model (auto-expanded) -> Category (auto-expanded) -> ...Ancestors (auto-expanded) -> Selected Element (collapsed) -> Child elements. All top level nodes (Model, Category, Ancestors) up to Selected Element would only have one child node that's relevant to the selected element. Problems with this approach: parent and child elements don't necessarily share the same Model and Category. For the selection tree we'd want to see Model and Category of the selected element, but the hierarchy structure suggests the Model and Category belong to the topmost ancestor.

  • Selected Element (auto-expanded) -> [Model, Category, Ancestors' hierarchy, Children hierarchy]. This approach would solve the problem of the previous one, but it wouldn't be as convenient to adjust selection as the whole hierarchy would be changed upon selection change.

We may want to consider showing Subject hierarchy from Model through InformationPartitionElement, parent Subject up to the root Subject. If we do, need to consider the case when Model models a non-InformationPartitionElement.

Interactions

  • Node selection would cause unified selection to update with all the consequences - graphics view changes highlighted elements, property grid shows content of newly selected element, etc.

  • Visibility control could be added similar to what we have in Models Tree.

@grigasp grigasp added the enhancement New feature or request label Jun 3, 2022
@grigasp grigasp transferred this issue from iTwin/itwinjs-core Jan 24, 2023
@grigasp grigasp changed the title Selection tree component [Tree Widget] Selection tree component Jan 24, 2023
@grigasp grigasp changed the title [Tree Widget] Selection tree component Tree Widget: Selection tree component Jan 24, 2023
@grigasp grigasp added the tree widget Tree widget or its components related issues label Feb 14, 2023
@grigasp
Copy link
Member Author

grigasp commented Jun 4, 2024

Closing in favor of #788

@grigasp grigasp closed this as completed Jun 4, 2024
@grigasp grigasp added the wontfix This will not be worked on label Jun 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request tree widget Tree widget or its components related issues wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

1 participant