This view can be used to apply queries on various EMF instance models. The Query Explorer can interact with EMF-based editors such as the generated tree editor, and even with GMF and Graphiti editors. Advanced querying use cases, like pattern match set filtering and detail observation is also available with the Query Explorer.
Query Explorer has the following components:
- Context menu items for resources
- "Magic Green Button"
- Pattern registry
- Result viewer
- View menu
Clicking on "Register patterns in Query Explorer" you can register your patterns to the "Pattern Registry".
Here, you can add your .eiq file to the pattern registry.
"Magic Green Button" (depends on context)
After you have opened your instance model with „Sample Reflective Ecore Model Editor”, you can load it with the "Magic Green Button".
- Load ResourceSet: You can load the whole ResourceSet which is being edited by the editor (this is the default when pressing the green button)
- Load Resource: You can load the Resource of the selected element within the editor which can be done with the appropriate element from the view menu of the green button.
- Load pattern(s): Opening a .eiq file, the magic green button functionality changes. Here we can register our .eiq file.
- Load as model: Or we can load our .eiq file as an instance model, so that queries can be executed on pattern models ("reflection"). This is a special usecase, mostly intended for EMF-IncQuery developers.
The Pattern Registry on the left shows the loaded patterns according to the package hierarchy. It distinguishes them by their source, either coming from a generated EMF-IncQuery project from the host workspace or manually loaded ones from the host Eclipse. You can select and deselect single patterns or groups of patterns inside the Pattern Registry which will result the loading and unloading of queries for every instance model loaded into the Query Explorer. You can also change the way of package presentation (flat or hierarchical) in the view menu of the Query Explorer.
- Showing plugin and runtime patterndefinitions
- Unregister pattern
- has effect on viewer
- plugins can not be unloaded
- Show location
- jump to pattern
- Checkbox filtering
- has effect on viewer (checked patterns are in the viewer)
If at least one query and instance model is loaded, the middle section of the Query Explorer will present the match sets in a tree structure. The top level element corresponds to an editor-instance model pair (because the same instance model can be loaded from different editors and the reversed way is also possible). The elements under the top level elements correspond to the queries and the low-level elements represent the match set of the given query. Note that the contents of the tree viewer are automatically updated upon changes occurring in the match sets of the pattern.
- behaviour depends on the state of the:
- instance model
- Data binding: EMF-IncQuery provides a simple data binding facility that can be used to bind pattern matches to UI elements.
- @QueryExplorer: the message parameter of the Query explorer annotation defines the label feature of the selected match.
- @ObservableValue: allows the developer to customize the appearance of a match inside the Details panel.
See more at EMFIncQuery/UserDocumentation/Databinding
- default appearance
- following changes (modifying the contents of a .eiq file - that was loaded earlier to the Query Explorer - automatically triggers re-loading of the patterns)
- navigate to source (Show location)
- to instance model
- to pattern definition
The view of this content is based on the selection inside the tree viewer. If you select a pattern then you can specify filters on the pattern parameters. However, if you select a single match, you can observe the values of the pattern parameters which are data bound to the appropriate model elements thus automatically refreshed upon match changing.
- choosing a concrete match or matcher
- input parameter binding (matcher filter) – popup window depends on the type of the parameter (object or not)
- has effect on viewer
- You can change the way of the pattern registry’s package presentation (flat or hierarchical) in the view menu of the Query Explorer.
- You can reset the UI. This is useful if the Query Explorer gets into an inconsistent state (due to e.g. an error).