New and Noteworthy in Papyrus Mars
Christian W. Damus
The Mars release of the Eclipse Papyrus project is upon us. In this release, I went pretty deep on new features in the diagrams, a part of the GMF technology stack with which I have historically been least familiar.
Modeling Assistants
The first major feature in this release was the introduction of Modeling Assistants to Papyrus UML diagrams. The underpinnings of this functionality have been in the GMF Run-time since Callisto but were heretofore suppressed in Papyrus. Now, several of the diagrams provide connection handles and pop-up assistants for creation of objects related to what's already on the diagram. It is still a work in press: some diagrams do not implement them, yet.
The Modeling Assistants implemented in Papyrus are, of course, described by models, based on the modeled element types that are also new in Mars. In fact, these models are hot-deployable from the workspace at run-time and can be generated from GMFGen models of a diagram or from UML Profiles. The latter case is particularly useful for users to complement custom palettes for graphical DSLs.
See bug 451230 for more details.
Canonical Diagrams
The next major feature is an extensible canonical edit-policy (in the GMF terminology) that is manifest to users as diagram views that are automatically synchronized with the semantic model. A new appearance property is added to the property sheet for diagram views that makes them synchronized with the model. A corresponding CSS attribute canonical
is also supported for stylesheets. Canonical views automatically present child views and connected edges where possible in the diagram and keep them synchronized with changes in the model.
See bug 433206 for more details.
Diagram Synchronization
This last feature completes work started by Laurent Wouters to implement a general-purpose synchronization framework capable of handling peer-to-peer and master-slave synchronization of model content and diagram notation. On this framework is implemented a proof-of-concept in the UML Real-Time domain: synchronization of the semantics and diagram of a state machine in a Capsule that redefines an inherited state machine.
See bug 465416 for more details.
Enjoy your trip to Mars! We'll see you under the Neon lights next year.