The creation or modification of EMF models is performed interactively with the EMF generated editors or graphical modelers.
These editors can easily construct model elements and the relationships between them. Unfortunately, the features they make available
to set the element properties are much less convenient to use. Some editors offer specific GUIs but most of them provide only the
generated standard properties view.
This properties view is not all the time adapted to the needs because it often involves a lot of information that can be useless depending
on the use case. Therefore, the search for a particular property can be quite tedious. Another shortcoming appears when assigning a value
to a reference, the selection of an element performed from a very large candidates list is not very user friendly.
MAD is a tool that was created to replace the standard properties view in order to make model editing easier. It allows using a configuration to provide
custom edition form for each type of item to edit. MAD doesn't require code generation and any configuration change is applied immediately.
The edition form is composed of configurable widgets, the elements to edit and their features are obtained from query made on the edited models.
MAD is fully scalable, it provides a set of basic widgets but it' s possible to create your own widgets, it comes with OCL and some MAD macros
as query language but it's possible to create your own language and interpreter to extend your MAD configuration.
Description:
MAD provides a form view composed of widgets for displaying and updating any properties owned by an editing model and its linked models.
- Combo, List and PickList form embedded or popup.
- Xtext element Editor.
Navigation between elements:
- Navigation list.
Output widgets for read only or computed values:
- Text.
- Internet link.
- Google Map.
Composite elements rendering:
- Flexible widget.
Command Button for launching actions (command).
Extensible by creation of custom widget.
Widgets layout:
Configurable displaying order.
Tab separation for improving clarity.
Concept of Layers providing filtered logical view point.
MAD Configuration concept:
View configuration: specification of template (widgets group) for metamodel types to edit.
- Widget type definition.
- Widget values are defined by queries for obtaining model elements and their properties.
- Visibility and editability defined by constraints.
- Add commands and their action queries for acting on the model (create, delete, move elements or else).
All configurations are reusable using implicit (Ecore inheritance) or explicit inheritance, composition is also allowed.
Query languages and evaluators:
Evaluators: OCL, MAD, MAD_UML, MODEL_EXTENSION
Custom specific evaluators can be easy created and added to MAD.
Queries provide multi-languages, multi-models and sub queries support.
Queries can be declared and shared by several configurations.
Models handling by MAD:
Main model / Foreign model : the editing model is considered as the main model for others
models linked by a semantic relation. These models are called Foreign models.
Mad can manage both main models and foreign models.
Models elements and their properties are accessed using queries.
Element creation, deletion or moving are processed in MAD transactional queries.
If you want to use MAD with UML Designer you need to also install the feature UML Designer Support.
If you want to use MAD with a modeler generated with GMF you need to install the feature GMF Support.