SCA/Components/SCA CompositeDesignerExtension

From Eclipsepedia

Jump to: navigation, search

IN PROGRESS

To extend the SCA Composite Designer:

  • Create a new plugin-in
  • Add the following dependencies:
    • org.eclipse.core.runtime,
    • org.eclipse.core.resources,
    • org.eclipse.core.expressions,
    • org.eclipse.jface,
    • org.eclipse.ui.ide,
    • org.eclipse.ui.views,
    • org.eclipse.ui.navigator,
    • org.eclipse.ui.navigator.resources,
    • org.eclipse.emf.ecore,
    • org.eclipse.emf.ecore.xmi,
    • org.eclipse.emf.edit.ui,
    • org.eclipse.gmf.runtime.emf.core,
    • org.eclipse.gmf.runtime.emf.commands.core,
    • org.eclipse.gmf.runtime.emf.ui.properties,
    • org.eclipse.gmf.runtime.diagram.ui,
    • org.eclipse.gmf.runtime.diagram.ui.properties,
    • org.eclipse.gmf.runtime.diagram.ui.providers,
    • org.eclipse.gmf.runtime.diagram.ui.providers.ide,
    • org.eclipse.gmf.runtime.diagram.ui.render,
    • org.eclipse.gmf.runtime.diagram.ui.resources.editor,
    • org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
    • org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport,
    • org.eclipse.gef;visibility:=reexport,
    • org.eclipse.stp.sca.diagram.extension,
    • org.eclipse.stp.sca.diagram,
    • xyz.youmodel,
    • xyz.youmodel.edit
  • Extend the required extension points:
  • org.eclipse.gmf.runtime.emf.type.core.elementTypes
  • org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings
  • org.eclipse.stp.sca.diagram.AdaptorFactories
  • org.eclipse.stp.sca.diagram.extension.implementations
  • org.eclipse.stp.sca.diagram.extension.interfaces
  • org.eclipse.stp.sca.diagram.extension.bindings
  • org.eclipse.stp.sca.diagram.ImplementationEntryPalette
  • org.eclipse.stp.sca.diagram.InterfaceEntryPalette
  • org.eclipse.stp.sca.diagram.BindingEntryPalette

Extension points

Example

<?xml version="1.0" encoding="UTF-8"?>
 
<plugin>
 
    <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
        <metamodel nsURI="http://frascati.ow2.org">
            <metamodelType id="org.eclipse.stp.sca.diagram.frascati.FractalImplementation" name="FractalImplementation" eclass="FractalImplementation" kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
                <param name="semanticHint" value="org.eclipse.stp.sca.diagram.frascati.FractalImplementation"/>
            </metamodelType>
            <metamodelType id="org.eclipse.stp.sca.diagram.frascati.JBIBinding" name="JBIBinding" eclass="JBIBinding" kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
                <param name="semanticHint" value="org.eclipse.stp.sca.diagram.frascati.JBIBinding"/>
            </metamodelType>
        </metamodel>
    </extension>
 
    <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
        <clientContext id="ScaClientContext">
            <enablement>
                <test property="org.eclipse.gmf.runtime.emf.core.editingDomain" value="org.eclipse.stp.sca.diagram.EditingDomain"/>
            </enablement>
        </clientContext>
        <binding context="ScaClientContext">
            <elementType ref="org.eclipse.stp.sca.diagram.frascati.FractalImplementation"/>
            <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
        </binding>
        <binding context="ScaClientContext">
            <elementType ref="org.eclipse.stp.sca.diagram.frascati.JBIBinding"/>
            <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
        </binding>
    </extension>
 
    <extension point="org.eclipse.stp.sca.diagram.extension.implementations">
        <element typeId="org.eclipse.stp.sca.diagram.frascati.FractalImplementation" literalClass="org.eclipse.stp.sca.domainmodel.frascati.FrascatiPackage$Literals" literalField="DOCUMENT_ROOT__IMPLEMENTATION_FRACTAL" iconPath="/org.eclipse.stp.sca.domainmodel.frascati.edit/icons/full/obj16/FractalImplementation.gif"/>
    </extension>
 
    <extension point="org.eclipse.stp.sca.diagram.extension.bindings">
        <element typeId="org.eclipse.stp.sca.diagram.frascati.JBIBinding" literalClass="org.eclipse.stp.sca.domainmodel.frascati.FrascatiPackage$Literals" literalField="DOCUMENT_ROOT__BINDING_JBI" iconPath="/org.eclipse.stp.sca.domainmodel.frascati.edit/icons/full/obj16/JBIBinding.gif"/>
    </extension>
 
    <extension point="org.eclipse.stp.sca.diagram.AdaptorFactories">
        <adaptorFactory class="org.eclipse.stp.sca.domainmodel.frascati.provider.FrascatiItemProviderAdapterFactory"/>
    </extension>
 
    <!-- Palette Provider -->
    <extension point="org.eclipse.stp.sca.diagram.ImplementationEntryPalette">
        <implementationEntry description="Create a new FractalImplementation" iconPath="/org.eclipse.stp.sca.domainmodel.frascati.edit/icons/full/obj16/FractalImplementation.gif" label="Fractal (Frascati 0.4)"
type="org.eclipse.stp.sca.diagram.frascati.FractalImplementation">
        </implementationEntry>
    </extension>
 
    <extension point="org.eclipse.stp.sca.diagram.BindingEntryPalette">
        <bindingEntry description="Create a new JBIBinding" iconPath="/org.eclipse.stp.sca.domainmodel.frascati.edit/icons/full/obj16/JBIBinding.gif" label="JBI (Frascati 0.4)" type="org.eclipse.stp.sca.diagram.frascati.JBIBinding">
        </bindingEntry>
    </extension>
 
</plugin>