Graphical User Interface
The Graphical Interface provides an easy way to work with the dependency graphs as well as filter, format and even export the resulting graphs for print out or PDF versions.
Loading Files
Import an XML file with dependency information for a build using File, Open XML.
After loading the Graph will be rendered in the main view in its unfiltered state, meaning that you will see all SWUs and all dependencies in the entire build. You can use the search and filter options described below to reduce the graph size as well as navigate the graph using the actions described below under the Graph View headline.
Searching
The search box at the top of the program allows you to execute two different types of searches. One search which searches for a specific SWU allowing you to display only that SWU and its direct dependencies/dependents. The second option allows you to search for a specific run block and display all SWUs belonging to that run block only as well as the dependencies between them.
Both options offer autocomplete but requires an exact match with an SWU/Run block name. In case you need a more advanced search use the filtering option with the regular expression filter documented below.
Using the Graph View
The Graph View displays a graph representation of the opened dependency XML file. Each node represents an SWU and each edge incoming or outgoing dependencies.
Edges can be colored depending on memory type by checking the Show -> Graph Edge Memory Type Coloring checkbox.
You can navigate the Graph View using your mouse.
- Zoom in/out using the mouse scroll wheel (or any other scrolling action as per your platform).
- Click on an SWU to highlight its neighbors.
- Right click on and SWU to open the following context menu:
- Show All Nodes will show all nodes of the current graph
- Zoom to Full Extent will zoom out and show the full view of the current graph
- Focus Node will hide all SWUs and edges that are not directly connect to the current SWU.
- Undo Previous Focus will undo the previous SWU focus, displaying all hidden SWUs and edges.
- Expand Node will add all the selected node's dependencies&dependents to the existing graph.
- Exclude Node will hide the SWU and also the connected edges.
- Reinclude excludes nodes allows for displaying hidden SWUs and edges that were hidden using the Excluded Node option.
- Ctrl+Click or Shift+Click on several nodes in the GraphView to select them, then Shift+Right click to perform any actions mentioned above on the whole set of nodes
- Click and drag to pan around the Graph View
- Ctrl+Click anywhere but on a node to use rubber hand zoom to zoom on a specific area
- Shift+Ctrl+Click anywhere but on a node to use rubber hand zoom out to zoom out
Focus & Expand
When selecting an SWU node in the Graph View/Tree View by right-click, it can be either focused on or expanded.
- Focus will redraw the new graph with the selected node being the root node.
- Expand will extend the graph by displaying incoming and outgoing dependencies from the selected node.
Using Different Layouts
Layouts can help you visualize the graph and see patterns in dependents. Three different layout types are provided, each providing different benefits in different situations.
Bubble
The bubble graph is the default and will render the dependency graph in a ciruclar/bubble format centered around a single node. This is useful especially for larger graphs containing many nodes.
Hierarchical
The hierarchical layout will provide a tree based view showing either the node most recently focused on or searched for in the top an its dependencies on various degrees away below.
Force Layout
The force layout will run a non-deterministic force based algorithm which will attempt to keep edge distances at an equal and minimal length, at times providing more concise graphs.
Visualizing differences between two builds
The Diff View allows the user to compare two different builds by importing two XML files. The Diff View will display a union of two builds in the Graph View and the Tree View where the user will be able to distinguish between introduced, eliminated and unchanged SWUs and dependencies by text and color.
- Open an XML file from File, Open XML.
- Open another XML file from File, Open XML to Show Differences.
- Open the Graph View/Tree View to see the build differences.
When the second file has loaded you will be presented with a new Graph in the main window displaying all SWUs in both builds. There will also be conditional formatting available which can be used to highlight nodes that were added, removed or unchanged between the two builds. You can use these to better understand the differences in the build. If you want to start over with a fresh graph, simply use the Open XML menu to load the build anew.
Using the TreeView
The TreeView will display the dependency path ways of the currently focused nodes (or of all nodes in case the all nodes are displayed). The view is divided into three parts, Incoming, Outgoing and Both. The incoming view will show all incoming dependency paths to the current node. That means you can see all the nodes that have a dependency to the currently focused node (displayed as the root of the tree). These incoming dependencies can either be direct (first level down) or indirectly (additional levels down beyond the first). The same goes for the "Outgoing" view except this maps the dependencies that start from the focused node - ie. the first level will show direct dependencies, the second level will show dependencies of the dependencies of the node and so on. The Incoming&Outgoing tab will naturally show the combination of both.
Please note that while the Graph will display "dependents of dependencies" these do not form dependency paths, that is if node A has a dependency on node B, and node C also has a dependency on node B, there is no direct dependency/dependent relationship between node A and node C and therefore node C will not be displayed in the tree view. On the other hand if node B is dependent on C (has a dependency to) then node C would be displayed under the "outgoing tab".
Filtering actions and conditional formatting filtering (Hide=Yes) will be active also on the Tree View, as will Excluded Nodes. You can right click any node in the TreeView to select, focus, expand, contract or perform any action on that node in the graph itself.
Filtering & Conditional Formatting
It is possible to apply filters to reduce the amount of information in the graph to only focus on SWUs of interest. Filters will include or exclude SWUs that matches the filters depending on the user preference. If the user wants to highlight some of the SWUs in the current graph, conditional formattings can be applied. Conditional formattings can be used to change the color or opacity for the SWUs that included/excluded nodes. The following types of filters/conditional formattings can be created:
- Regular Expression: Use a regular expression on the SWU name to define which nodes should match or not.
- Run Block: Provide a valid run block name and only SWUs in that run block will match.
- Dependency Degree: Give minimum and maximum degree values for nodes to match (that is minimum and maximum values for dependencies + dependents).
- Memory Type: Whether the SWU is of an LPM or LDM type. You can provide values "LPM", "LDM" or "LPM_LDM" as parameters to the filter. "LPM_LDM" will display nodes that are both LPM and LDM.
- Difference: Use this to highlight nodes based on whether they have been added/removed/unchanged. Enter "ADDED", "REMOVED" or "UNCHANGED" as parameter to the filter. This filter will only have any action in case a difference is loaded.
Note that when a node is filtered all of its incoming and outgoing edges are automatically removed as well.
To display the conditional formatting and filter dialogue box use the Show menu and ensure that Filter Menu is selected.
Creating new filters
In order to create a new filter or conditional formatting, right click anywhere inside either the list box for Conditional Formatting or Filters. From the context-menu select Create New and then select the desired filter type (see description above for more information on the available filter types).
When adding a filter to the Filter menu it will decided whether the matching SWUs should be displayed in the graph or not. If the "Include" option is used, then any matching SWU will be included in the graph and if "Exclude" option is used then any matching SWU will be excluded from the graph (and all SWUs that does not match the filter will be included).
Conditional formatting
For conditional formatting you can either specify a colour (use a colour name such as "blue"), opacity (a value between 0..255 where opacity = 0 means that the node is fully transparent and 255 that the node is fully oblique) or whether to hide nodes (set hide to "Yes").
If the "Include" option has been used for the filter the conditional formatting will be applied in case the node matches the filter, and if "Exclude" option is used then the conditional formatting will be applied for any node not matching the filter. In case multiple conditional formattings match then only the last one matching will affect the node (so in case there is
You can disable and enable individual filters by using the checkboxes next to their respective names. By default filters are disabled when you create them. After editing the relevant parameters of the filter you can enable the filter to ensure it has the desired effect on the graph.
It is also possible to color edges by checking Show, Graph Edge Memory Type Coloring.
Import / Export
Filters and conditional formattings will be cleared when exiting the application. To avoid having to create these over and over, they can be saved on disk as XML files. Go to File, Export Filters As... or Export Conditional Formattings As.... Those XML files can be imported from File, Import Filters... or Import Conditional Formattings...
In case you have any filters or conditional formattings already defined the newly loaded ones will be appended to the end of the list.
Using the online help
In case you want information about any option while using the software you can use the online help functionality. Online help is available either by clicking "What's this" from the "Help" menu or by using the keyboard shortcut Shift+F1. Once you enter online help mode you can select any component you want to get more information about. A small help text will be displayed.
Keyboard Shortcuts
File Menu
Keyboard Shortcut | Action |
---|---|
Ctrl+O | Open XML |
Ctrl+D | Open XML (show difference) |
Ctrl+I | Import Filters... |
Ctrl+E | Export Filters As... |
Ctrl+Shift+I | Import Conditional Formattings... |
Ctrl+Shift+E | Export Conditional Formattings As... |
Ctrl+Shift+S | Export Graph As... |
Ctrl+P | Print... |
Ctrl+Q | Quit |
Show Menu
Keyboard Shortcut | Action |
---|---|
Ctrl+G | Graph View |
Ctrl+T | Tree View |
Ctrl+S | Search Field |
Ctrl+F | Filter Menu |
Graph View
Keyboard Shortcut | Action |
---|---|
D | Exclude selected SWUs |