Dear Papyrus developers,
I merged the elementtypesconfiguration framework in master this weekend. It relies on the GMF Elementtypes registry (you can look at “Developer's Guide to the Extensible Type Registry” in Eclipse Help for a short introduction).
This new framework is used to refactor the semantic handling of model element in diagram editors. Before, each diagram handled the semantic edition of the model through its own editpolicies, edithelper and edit commands.
Now those are merged and centralized in org.eclipse.papyrus.uml.service.types or org.eclipse.papyrus.sysml.service.types. The Papyrus’s gmfgen code generator doesn’t generate the editpolicies, edithelpers and editcomamnds
anymore.
So far, only the class diagram and usecase diagrams have been fully migrated to the elementtypesconfiguration framework. The activity diagram has been partially migrated.
All the UML elementypes are defined in org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations. Then every diagram specializes those elementypes (e.g. org.eclipse.papyrus.uml.diagram.clazz/model/classdiagram.elementtypesconfigurations)
In the gmfgen, the MetamodelTypes or SpecializationTypes are set to be “defined externally”.
The elementtypesconfiguration mainly consists of:
- org.eclipse.papyrus.infra.elementtypesconfigurations
The core of the framework. In this plugins generated code is clearly separated from manually coded sources.
- org.eclipse.papyrus.infra.elementtypesconfigurations.edit
Obvious
- org.eclipse.papyrus.infra.elementtypesconfigurations.editor
Obvious (note that extensions use the childcreationextender feature of MF so this editor can be used for extension of the elementtypesconfigurations framework too)
- org.eclipse.papyrus.infra.elementtypesconfigurations.emf
Provides an extension of the generic framework for EMF model edition operations (not much tested)
- org.eclipse.papyrus.infra.elementtypesconfigurations.invarianttypes
Provides a generic extension of the elementtypesconfigurations framework to define invariants (e.g. an abstract class that must always be an abstract class) (not much tested)
- org.eclipse.papyrus.uml.tools.elementtypesconfigurations
Provides an extension of the generic framework for UML model edition operations (not much tested)
- org.eclipse.papyrus.uml.service.types & org.eclipse.papyrus.sysml.service.types
The elementtypes defintions together with appropriate commands, edithelpers, …
- org.eclipse.papyrus.elementtypesconfigurations.developer
Some developer utils. Especially a view to list registered elementtypes.
This framework aims to replace the extendedtypes framework. Should you rely on the extendedtypes framework, you should switch to the elementtypesconfiguration framework. The migration should be rather straight forward.
This contribution most probably added regressions. Some are already identified and some should appear soon. Despite this regressions, we decided to push this framework because many ongoing tasks depend on it to go further
and because it is more than time to get feedback.
So far, I was (almost, thanks Christian) the only one working on this framework and migration. Even though some other contributors and committers have formally been asked to join me in this effort, you are all welcome
to contribute to it.
Yours faithfully.
--------------------------------
Florian NOYRIT
+33 (0)1 69 08 01 01 - florian.noyrit@xxxxxx
CEA Saclay Nano-INNOV
Institut CARNOT CEA LIST
DILS/Laboratory of model driven engineering for embedded systems (LISE),
Point Courrier 174, 91191 Gif-sur-Yvette, France