MOSKitt Extensibility. Mutatis mutandis
-
Upload
javier-munoz -
Category
Technology
-
view
772 -
download
4
description
Transcript of MOSKitt Extensibility. Mutatis mutandis
M OSKitt ExtensibilityM OSKitt Extensibility““mutatis mutandis”mutatis mutandis”
Javier Muñoz, Francisco Javier Cano{jmunoz, fjcano}@prodevelop.es
Contents• Introduction
• Adapting the Method
• Adapting the Editors
• Adapting the Transformations
• Conclusions
Contents• Introduction
• Adapting the Method
• Adapting the Editors
• Adapting the Transformations
• Conclusions
Motivation• Every organization is different
Internal culture
Background and experience
Goals and expectations
• All the organizations change New responsibilities and goals
Continuous improvement
h t t p ://w w w .sx c .h u /p h o t o /98441 8
How to tailor MO SKitt to every specific context?
h t t p ://w w w .f l ic k r .c o m /p h o t o s/83476873@ N 00/1 1 0993877/
How to adapt?• Adding tools
New editors
New transformations
• Modifying tools Changing code + recompile branching→
➢ Hard to maintain and evolve :(
Dynamic extensions mechanisms
➢ Implementing and declaring new functionality
➢ Existing code must be ready
➢ Tools remains untouchedh t t p ://w w w .sx c .h u /p h o t o /1 1 52 1 27
Extension Points
HostPlugin
Plugin B
Plugin C
Plugin Z
.
.
.
Extension Points
What to adapt? Cheatsheets Contextual help
The Method Method contents Creation wizards
The Editors Model templates Palette
Extended Properties Graphical decorators
The Transformations Transf. override Synchronization
Contents• Introduction
• Adapting the Method
• Adapting the Editors
• Adapting the Transformations
• Conclusions
Method contents• Changing method steps
Method contents• Changing method steps
Creation Wizards• Specific actions on project creation
Creation Wizards
Cheatsheets
• What is a cheatsheet?1. Defines step by step
instructions to perform a task.
2. Steps can have instructions and actions.
3. Some steps can be ommitted.
Cheatsheets• How to use a cheatsheet in your
methodology:
1. Create the cheatsheet with the Eclipse editor
Cheatsheets2. Contribute the cheatsheet with the
'org.eclipse.ui.cheatsheets.cheatsheetContent' extension point
Cheatsheet3. Add the 'OpenCheatsheetAction' to one of
your task in a dashboard:
4. Select a cheatsheet for the action in the property sheets:
Cheatsheet• The cheatsheet will be available from the
task in the dashboard and the cheatsheet selection dialog:
Contextual help• GMF editors and FEFEM editors show help depending
on the selected element
• Third party plugins can contribute help contents to this system
FEFEM ed i t o r w it h e lem en t se le c t e dC o n e x t u al h e lp sh o w in g h e lp co n t e n t s fo r t h e
se le c t e d e lem en t
Contextual help• How to contribute contextual help
to MOSKitt:1. Create your context help file:
Contextual help2. Contribute your contextual help via the
'org.eclipse.help.contexts' extension point.
Contents• Introduction
• Adapting the Method
• Adapting the Editors
• Adapting the Transformations
• Conclusions
Model Templates• Initial model contents
Model Templates• Initial model contents
Palette customization• Change groups and tools names in a palette.
• Move tools from one group to another.
• Create and remove groups and tools from a palette.
Fu l l e d i t o r 's p ale t t e
C u st o m ize d e d i t o r 's p ale t t e
Palette customization
1. Define the customization via the 'es.cv.gvcase.mdt.common.editorPalette' extension point
Palette customization• 'Group' element:
adding a new group change an existing group's name removing a group
Palette customization
• 'Tool' element changing a tool's name moving an existing tool between groups removing a tool
Extended properties
• Adding new properties to existing entities
• Editing the properties with property sections
• Keeping compatibility with non-extended versions
Extended properties1. Define your properties via the
'es.cv.gvcase.mdt.common.featureExtender' extension point.
Extended properties2. Define
property type:➢ Integer
➢ Double
➢ Boolean
➢ String
➢ Reference
minimum multiplicity maximum multiplicity
Extended properties3. Define
Extended elements (AdaptTo): Candidate values ('AvailableValue')
Extended properties4. Implement and define property sections using
available infraestructure:
Integer Properties
String Properties
Double Properties
Collection Properties
References Properties
Graphical decorators
• Provide decorations to figures in GMF editors
• Contribute the decorators from third party plugins
• Easyly use icons and images to decorate figures
A decorated ClassA normal Class
Graphical decorators
Contents• Introduction
• Adapting the Method
• Adapting the Editors
• Adapting the Transformations
• Conclusions
Transformation Override
• Define higher priority transformations
Transformation Override
• Define higher priority transformations
Synchronization• Specific actions on traced models changes
Traces between“X.uml” and
“Y.sqlschema”
1.- on changein input
2.- updatetraced models
Synchronization• Specific actions on traced models changes
Contents• Introduction
• Adapting the Method
• Adapting the Editors
• Adapting the Transformations
• Conclusions
h t t p ://w w w .f l ic k r .c o m /p h o t o s/851 691 1 8@ N 00/93296381 /
• Many adaptation chances
• Ready to fit into your
organization
• We want to hear your
feedback
• What do you miss?
Conclusions
M OSKitt ExtensibilityM OSKitt Extensibility““mutatis mutandis”mutatis mutandis”
Javier Muñoz, Francisco Javier Cano{jmunoz, fjcano}@prodevelop.es
• You are free: to share — to copy, distribute and transmit the work
to Remix — to adapt the work
• Under the following conditions: Attribution — You must attribute the work in the manner specified by the
author or licensor (but not in any way that suggests that they endorse you or your use of the work).
Noncommercial — You may not use this work for commercial purposes.
Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one
Creative CommonsAttribution-Noncommercial-Share Alike 3.0
Unported
h t t p ://c r e at iv e c o m m o n s.o r g/l ic e n se s/b y-n c-sa/3.0/