Bug 451230 - Modeling assistants customization for profiles
Summary: Modeling assistants customization for profiles
Status: RESOLVED FIXED
Alias: None
Product: Papyrus
Classification: Modeling
Component: Diagram (show other bugs)
Version: 1.0.0   Edit
Hardware: All All
: P2 enhancement (vote)
Target Milestone: 1.1.0   Edit
Assignee: Christian Damus CLA
QA Contact:
URL: https://wiki.eclipse.org/Papyrus/Mars...
Whiteboard: Usability
Keywords: plan
: 399871 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-11-12 15:45 EST by Christian Damus CLA
Modified: 2015-10-02 02:46 EDT (History)
5 users (show)

See Also:
give.a.damus: mars+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Damus CLA 2014-11-12 15:45:38 EST
This is a Plan Item for the Mars release to collect individual work items (as blocking items) comprising a new Modeling Assistants framework for Papyrus.

The referenced Wiki page captures the feature requirements, links to bugzilla tracking, and other supporting information.  A non-normative copy of the initial requirements statements is included here for informational purposes only; please refer to the wiki page for the current requirements definition.

Requirements;

The requirements for Modeling Assistants in the Papyrus diagram editors, addressable in the Mars release, are

* R1 assistants provided by a diagram SHALL be described by a model
* R2 the assistants model SHALL be initially generated ("seeded") from a UML Profile
* R3 the assistants model SHOULD, as much as possible, be unified/aligned with
  the models for diagram palette customization and Model Explorer "new child"
  menu customization inasmuch as all three of these mechanisms are, in general
  terms, different manifestations of tools for creating new model elements
	* R3.1 the modeling assistants SHALL provide the same "new child" menu as
	  the Model Explorer in the context of diagrams
		* R3.1.1 which MAY be further filtered by restrictions of the visualization
* R4 a lightweight customization mechanism MAY be included that promotes
  "favourites" in the tool palette as modeling assistants
Comment 1 Christian Damus CLA 2014-11-22 21:30:26 EST
A brief video showing the earliest stage of integration of the GMF Diagram Assistant in the Papyrus class diagram:

    http://youtu.be/NxWiMdSu39I

This is driven by what is (for now) a small hand-crafted assistant model.  That model is registered by the class diagram in a new model-based modeling assistant provider supporting connection handles and pop-up bars.  This model specifies connection assistants and popup assistants for a select few kinds of model elements by element type.
Comment 2 Camille Letavernier CLA 2014-11-25 04:56:16 EST
*** Bug 399871 has been marked as a duplicate of this bug. ***
Comment 3 Christian Damus CLA 2014-11-28 17:33:11 EST
A new video (8.5 minutes) demonstrating integration of the modeled diagram assistants with the "Chaos II" branch, the new modeled element types infrastructure in development for Mars:

    http://youtu.be/vRnQ8jOXoWo

This video demonstrates diagram assistants for a user-defined profile in Use Case diagrams.

This functionality builds on the new element types configurations and code generation, as implemented so far for the Use Case diagram, in the committers/fnoyrit/elementtypesconfigurations branch.  My new branch

    committers/cdamus/451230_elementtypes

builds on Florian's to add the following:

* a model of diagram assistants:  pop-up bars and connection handles
* integration of the modeled diagram assistants into the Papyrus editor infrastructure
* updates to the diagram codegen templates to support creation of views for new elements via diagram assistants
* regeneration of the Use Case diagram with these codegen changes (as I understand it, only the Use Case diagram so far integrates the new element types infrastructure)
Comment 4 Christian Damus CLA 2014-12-19 10:59:00 EST
I have pushed new updates to the committers/cdamus/451230_elementtypes branch, primarily generation of the element types and diagram assistants for a UML Profile.  See a demonstration of the new capabilities on YouTube:

    http://youtu.be/i3ERSnjmTgA
Comment 5 Christian Damus CLA 2015-01-07 01:40:27 EST
As of commit 9e951f223b724271ff92aed3b2abd2f8b3d22264, the branch now has two fully functioning builds on the HIPP server:

* Papyrus-Feature-ModelingAssistants:  builds a p2 repository and ZIP archive of Papyrus including all of the new plug-ins for diagram assistants
* Papyrus-Feature-ModelingAssistants-Tests:  runs the automated tests pertaining specifically to the diagram assistants (not a lot of test cases just yet)

So, this branch build now permits installation of the diagram assistants generator wizard and run-time support into a local Eclipse/Papyrus install for alpha testing.
Comment 6 Christian Damus CLA 2015-01-13 13:05:28 EST
Further updates in the branch add support for:

* invoking the pop-up bar assistant on the diagram surface
* generating modeling assistants for a profile in all UML diagrams generically (rather than just for a specific diagram and its visual IDs, as previously)

A brief (seven minutes) video demonstrates:

    http://youtu.be/tyc0gWU4xj0
Comment 7 Christian Damus CLA 2015-01-14 19:13:55 EST
Commit cbc8d540d4f9f49a0882a35fed5cf8d383e8847a on the branch adds the generation of a diagram assistants model from a diagram's GMFGen model.  This generates diagram assistants tailored to the diagram's particular element types for the base UML constructs that it supports (not profiled).

This will be the basis for generating the diagram assistants for unprofiled UML modeling in each Papyrus diagram.  Assistants generated by users for their profiles (and generated by the Papyrus team for SysML and other stock profiles) will augment the assistants provided for the UML metamodel, in the context of the particular profile application.

This is demonstrated in a new video (less than seven minutes):

    http://youtu.be/UR8eSaYXON8
Comment 8 Christian Damus CLA 2015-02-08 22:00:11 EST
I have pushed commit c6128168bb854cbcf001139bb9bf7a6dc67eccec to master.  This provides the infrastructure for the modelled diagram assistants:

* the assistant metamodel
* model-based assistant provider extension of the GMF extension point
* Papyrus-specific assistant edit policies
• changes to the Element-Types-Configurations model generator from GMFGen
• model generators for Assistant models and Element-Types-Configurations models from UML profiles
• model generators for assistant models from GMFGen and ElementTypes
• various automated tests

A Gerrit review covers changes to the diagram codegen templates and regeneration of the Use Case and Class diagrams to support the diagram assistants, as well as integration of assistants for these diagrams:

    https://git.eclipse.org/r/#/c/41391/

Upon completion of that review, it will remain to define and integrate assistant models for the other diagrams as they are ported to the new modelled element types framework.
Comment 9 Christian Damus CLA 2015-02-09 17:26:48 EST
Commit acbf40afa3e30f70f222c781573be71d69af0aed adds end-user documentation for the modelled diagram assistants for UML profiles to the Papyrus User Guide in a new "Diagram Assistants for UML Profiles" topic under "Using UML Profiles".
Comment 10 Christian Damus CLA 2015-02-09 18:42:16 EST
The infrastructure, end-user tooling, documentation, automated tests, and implementation for Class Diagram and Use Case diagram are pushed to master for M6.

Of the original requirements, two are deferred, broken out into distinct enhancement requests to be scheduled separately:

Bug 459509: the "favourites" functionality for user-driven reduction of the scale of the diagram palette is only tangentially related to diagram assistants and is of lower priority (my time needs to be focused on something else now).

Bug 459510: I think the integration of the "new child" menu into the pop-up bar is probably of dubious value and would be a lower priority anyways.