Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Papyrus/Papyrus Developer Guide/Papyrus diagram generation
How to generate a diagram for Papyrus
Papyrus editor add some new features to GMF, and needs specific generation.
TODO
How to add your own template to the custom Papyrus generator
To add a new template to the mechanism of generation, you have to :
- Add your template xpt to the plugin org.eclipse.papyrus.def under a subfolder of "dynamic-templates3.5/codegen/xpt"
- In the plugin org.eclipse.papyrus.codegen, edit the class org.eclipse.papyrus.codegen.PapyrusCodegenEmitters by adding a get method for your template :
public TextEmitter getyourTemplateNameEmitter() { return newXpandEmitter("xpt::yourTemplatePath::yourTemplateName::yourStartingDefine"); //$NON-NLS-1$ }
where
yourTemplateName is the name of your template
yourTemplatePath is the path to access to your template from the folder xpt. Subfolder has to be separated by ::
yourStartingDefine the define that will start the generation
- Edit the class org.eclipse.papyrus.codegen.PapyrusGenerator
- Add a method generateXXXPage() :
- Call this method in the method customRun().
private void generateDiagramPreferencePage() throws InterruptedException, UnexpectedBehaviourException { doGenerateJavaClass(emitters.getyourTemplateNameEmitter(), PackageName, ClassName, Input); }
where
getyourTemplateNameEmitter() : is the new TextEmitter defined before
PackageName : is the name of the package the class will be contained in. It has to match with the one specified in the template.
ClassName : is the name of the class. It has to match with the one defined in the template.
Input : is the input element. It has to match with the type defined with FOR in your first xpt define.
You just now have to run your transformation as explained before in this page. Be careful to refresh your projects in your runtime application if you generate in this mode.
How to overwrite existing GMF template
TODO