The search feature will search for a specified string throughout the model and provide categorized lists of model components that match. The search is done hierarchically, and so can also be scoped to just a portion of the model as described below.
The Search Dialog
A Search Dialog is always associated with a particular State Editor. It can be opened from the State Editor's toolbar by either clicking on the magnifying glass, or by entering a string to search in the search textbox and pressing the Enter key, in which case the search will also be performed when the Search Dialog is opened.
The state associated with the State Editor (as shown in it's title bar) defines the starting point for the search. The search continues through all modeling components contained within the state right down to the leaves of the nested state hierarchy.
The Search Dialog consists of nine tabs each pertaining to a component category. When a search has been completed, any modeling component for which a match has been found in one or more of it's attributes, will be shown within the list of the appropriate tab. If a tab has one or more components that have matched, the number that have matched will be shown in parentheses appended to the tab's name. The first tab that has selected components will also be automatically selected.
►Note that the Globals tab refers to the Custom Globals that have been defined for the script model and so does not strictly contain modeling components. In this case there will be at most a single entry within the list of this tab.
To access a matched component, simply select the component, and then right-click to bring up it's context menu. The context menu's actions include:
- Edit Properties
Opens up the appropriate Properties Editor for the modeling component which has matched. The actual matches found will be highlighted in green.
- Go To Containing State Editor
Opens up the State Editor corresponding to the state which contains the modeling component which has matched. The component will be automatically selected to show you it's location within the model.
- Match case
When selected, the search will be case-sensitive. E.g., MyVar will match thisIsMyVar and not thisismyvar (with Match whole word not selected).
- Match whole word
When selected, search will be done on word boundaries, and so will match the string only as an entire word. E.g., integer will only match Integer and not myinteger (with Match case not selected).
The wildcard characters * and ? can be used within search strings. A ? will match any character at that position of the search string, while a * will match any number of characters within that position of the search string (but the fewest number of characters that it takes to have a successful match).
The use of the wildcard characters in a search can be enabled or disabled via a new Match wildcards option within the Search Dialog. Wildcard characters are enabled by default.
Modeling components that cannot be given a custom name can still be searched for by using their type names (or portion thereof) as follows:
- Shallow History Point: ShallowHistory
- Deep History Point: DeepHistory
- Final State: FinalState
- Terminate Point: Terminate