This chapter describes the Papyrus integration of Papyrus-Model2Doc.
For this step, you can check the plugin org.eclipse.papyrus.model2doc.integration.uml.architecture which is used as an example here.
This plugin provides a generic DocumentTemplate for a UML model.
The following points deal about the contribution to existing Architecture Frameworks/Viewpoints defined by Papyrus UML. It is not necessary to define all contribution into a unique .architecture file, as you will see here.
Select the domain element, open the contextual menu and select New Child > Description Language.
Select the language element, open the contextual menu and select New Child > Viewpoint.
Select the language element, open the contextual menu and select New Child > Papyrus Document Prototype.
Notes:
Add a contribution to the extension point org.eclipse.papyrus.infra.architecture.models, and reference your file in the
model field.
Select the model element (model or package), open the contextual menu and select New Document Template > Generic Text Document.
This code should be done in a plugin called org.eclipse.papyrus.integration.xxx to respect the naming convention. We advise you to manage the EMF property view, before embedding it in Papyrus (because there is shared code between them).
org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.propertiesorg.eclipse.ui.views.properties.tabbed.propertySections and you should get something like this: <extension
point="org.eclipse.ui.views.properties.tabbed.propertySections">
<propertySections
contributorId="TreeOutlinePage">
<propertySection
class="org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.properties.internal.DocumentStructureTemplatePropertySection"
filter="org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.properties.internal.DocumentStructureTemplatePackageSectionFilter"
id="org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.properties.propertySection1"
tab="advanced">
<input
type="java.lang.Object">
</input>
</propertySection>
</propertySections>
</extension>
org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.properties.sections.AbstractEObjectAdvancedPropertySection. This class will provide a org.eclipse.emf.edit.ui.provider.PropertySource, this PropertySource will provide a custom org.eclipse.ui.views.properties.IPropertyDescriptor.
org.eclipse.jface.viewers.IFilter
You just need to manage your new feature in the method PropertySource.createPropertyDescriptor(IItemPropertyDescriptor) of the existing PropertySource