Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

VIATRA/Query/DeveloperDocumentation/FeatureSetAndTesting/QueryExplorer

Query Explorer

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
  • Details/Filters
  • View menu


Context menu items for resources

Clicking on "Register patterns in Query Explorer" you can register your patterns to the "Pattern Registry".

Register patterns.png

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".

Use-cases:

  • 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 instance.png


  • 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 a model.
Load eiq.png



Pattern registry

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 runtime 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.

Show location.png

Use-cases:

  • Showing plugin and runtime patterndefinitions
  • Unregister pattern
    • has effect on viewer
    • plugins can not unloaded
  • Show location
    • jump to pattern
  • Checkbox filtering
    • has effect on viewer (checked patterns are in the viewer)



Result 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:
    • patternregistry
    • instance model
    • details/filters
  • 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.
Constraints.png
  • Use-cases:
    • 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



Details/Filters

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.

Detailsfilters.png

Use-cases:

  • 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
Popupfilters.png

View menu

Use-cases:

  • 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
Viewmenu.png

Back to the top