Skip to content

TreeView: Filtering, Sorting, Grouping

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 14 Dec 15:35
· 2461 commits to master since this release
a01ac50

This release incorporates the changes by @falko17 from pull request #681.
Builds for Windows and Linux are available below.

Details

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):

  • Filtering: Both the normal tree view and the graph search can apply a combination of filters, handled by the 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).
  • Sorting: Both the normal tree view and the graph search can sort the results by a number of attributes via the 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.
  • Grouping: In the tree view, elements can be grouped together (i.e., put below a root node together) via the 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 #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

  • A static 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.
  • Headings for PopupMenus have been implemented.
  • A bug in the MoveAction has been fixed that led to nodes not being unparented correctly in a reflexion analysis context.
  • An option has been added to keep PopupMenus open even after clicking on them.
  • A DefaultDictionary has been added that adds and returns a default value if an accessed dictionary key does not actually exist.
  • A bug in the CI has been fixed which led to bad patterns not being detected correctly.
  • Unity has been updated to version 2022.3.15f1.
  • Additional smaller bug fixes.

See original pull request for details.