-
Notifications
You must be signed in to change notification settings - Fork 5
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
TreeView: Filtering, Sorting, Grouping #681
TreeView: Filtering, Sorting, Grouping #681
Conversation
This is a class that allows its users to filter graph elements by various criteria.
This is because the `Reparent` method may not actually reparent the node again, e.g., in a reflexion graph, which leads to the node having the wrong parent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are a few bad patterns I found which you should check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have only very trivial remarks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All fine. I resolved all remaining issues myself.
Apart from a lot of smaller improvements to the TreeWindow, this pull request adds the following functionality (accessible via buttons next to the search bar):
GraphFilter
class. Currently, this only includes toggle attributes and a toggle for edges. Filtered elements will not be shown in the TreeWindow (orphan nodes and dangling edges are "lifted" upwards).GraphSorter
class. Currently, this includes the source name, the source line, the filename, and the type. Sorters are applied in order, and can be made descending or ascending on a case-by-case basis.TreeWindowGrouper
class. Currently, this is possible with the reflexion state and the element type. Only one group can be applied at a time. The hierarchy is preserved here – for details on what this means, see Allow "direct" grouping in Tree Window #680. Elements that do not actually belong to the group are rendered in italics.All three modifiers can be combined in any desired way (e.g., filters can still be applied while grouping elements). Additionally, it should be very easy to include additional filters/sorters/groupers with this structure in place.
Additional Changes
Icons
class has been added, so that icon glyphs can be easily reused across different contexts. See https://github.com/uni-bremen-agst/SEE/wiki/Icons for details.DefaultDictionary
has been added that adds and returns a default value if an accessed dictionary key does not actually exist.