Sometimes this is done by navigating from what you are currently viewing. The individual Imagix 4D displays are optimized for this navigation, so that you can quickly move from what you are seeing to what you might like to see next. In the Graph window, there are some advanced way of manipulating the info in the window; the term we use to describe this is graphical querying.
But other times, the change in focus and content is more fundamental, refering back to the full database rather than just those portions of the data that are closely related to what you're currently viewing. The main tools for this type of query reside in the Query panel.
The Query panel also contains the Mapper tab. Mapper supplements Main panel displays, showing a wider view of the contents of a Graph window or File Editor, and supporting scrolling through those displays. From this usage standpoint, Mapper might be grouped with the Context panel tabs along the left side of the main window. However, because of its form factor, Mapper is placed here in the Query panel.
Database LookupThe Database Lookup tab enables identification of symbols in your software based on their names, types and attributes.
Name matching includes the use of "*" as a wildcard character. So a symbol named SomeErrorHandler would be found via any of the following name searches: "SomeErrorHandler", "*ErrorHandler", "Some*Handler", *Error*". If a case insensitive name lookup is enabled through the Aa button, a name search on "*error*" would also return SomeErrorHandler.
The database lookup can be limited to symbols of certain types through the Any Symbol menubutton. The Options... dialog enables further filtering of the lookup, based on symbol attributes, such as scope, file location, and metrics value. For example, you could search for functions whose name ends in "handler", are of global scope, and have a cyclomatic complexity of over 10.
Because many of the attributes are symbol type specific, it is important to set the symbol type filter before setting the attribute filter.
Shortcut: A database lookup can be invoked directly from the File Editor. Control-B will initiate a lookup using the string currently selected in the editor.
Through the Advanced button, you can access the Advanced Grep Search dialog for additional string search functionality. You're able to limit the scope of which lines of source code are searched, including further filtering of those lines that match your most recent search (current grep results). You can also control how the search is conducted with respect to case sensitivity, whole word matching, and the use of extended regular expressions.
Shortcut: A grep search can be invoked directly from the File Editor. Control-G will initiate a search using the string currently selected in the editor.
AnalyzerThe Graph windows contain a series of controls for low-level, fine grained graphical analysis of your software. The Analyzer tab complements these. Analyzer provides a list of advanced, high level queries that generate graphs providing insight into many key aspects of the usage and dependencies of a symbol. The resulting graphs might be sufficient in themselves for your problem at hand, or might serve as the starting point for a new line of lower-level graphical queries.
For some analysis, you might want to examine multiple aspects of the symbol, side-by-side. The New Graph button on the Analyzer tab enables you to create an additional graph without replacing the current one.
In addition to these analyses focused on a single symbol, Analyzer provides dependency analysis of the relationships between two symbols. These include finding transitive relationships, such any paths by which one function calls or is called by another, one file includes another, or one variable gets indirectly set by a function. It also includes analysis of shared hierarchies, such as any functions that indirectly read two specific variables, or any variables that are set by two specific functions.
Invoke: Focusing Analyzer is done through the context sensitive menu by right clicking on a symbol in any display. Quicker still is to Alt-left click on the symbol.
Shortcut: For the two symbol relationship queries, a second symbol needs to be specified along with the primary focus of Analyzer. The relationship queries have a pop-up filed that allows the symbol to be selected. However, the default second symbol is the previous Analyzer focus. So the easiest way to specify a relationship query is to focus Analyzer on one of the two symbols, then focus it on the other.