Feature: Thread Selection
- Dominant language
- JavaScript
- Stars
- 171
- Forks
- 13
- PR merge metrics
- No merged PRs in 30d
Description
* [ ] allow "unselecting" threads (i.e. select "all other" threads)
* NOTE: especially useful for the "unassigned node thread (group)"
## Future Work
* [ ] add new fork + join trace decorations?
* [ ] when thread selection is active, replace filtered nodes with `Hidden` nodes
* [ ] when clicking such `hidden` node (to unhide), use modal to ask user whether they want to disable the filter
* [ ] if yes, just disable filter -> will remove `hidden` nodes
* [ ] if no, just reveal `hidden` nodes
* Changes to dbux-code:
* [ ] `Navigations`, `TraceExecution`, `ObjectTraces` only shows traces that match the current filter
* [ ] Only **decorate** traces of the current filter
* Add `QueryInterface` API:
* [ ] The `QueryInterface` implements all methods that are used in dbux-code for showing data to the user
* [ ] The default implementation just calls the `DataProvider.util` methods directly
* Those methods include all the methods used for `Navigation`, `TraceExecutions`, `ObjectTraces` etc.
* Warning: This will require a lot of work, since many of those methods will call other methods to do the main work.
* [ ] Different implementations of this interface (such as the `ThreadSelectionQueryInterface`) will then run the default result through some transformation or filter
* [x] While a filter is active, show some obvious "Disable Filter" button somewhere in plain sight, maybe similar to commonly used "filter" icons 
* [(big workload)] Optimization: Add indexes for filters and re-write all methods to use those indexes instead, to optimize everything.
# Done
* [x] Allow user to select thread in AsyncGraph
* Add `ThreadSelection` in dbux-data
* [x] interface similar to `TraceSelection`
* [x] add a button to select/deselect a thread (at top of column?)
* [x] only show currently selected thread
* [x] also render all forks and joins from and to the thread on the sides (but only render the first node of each, not the entire sub-tree or thread)
* [x] make column header `sticky` (css)
Contributor guide
Assessment
This issue has not been assessed yet.