Jump to: navigation, search

Difference between revisions of "SCA/Components/SCA CompositeDesignerExtension"

< SCA
(No difference)

Revision as of 10:57, 8 July 2010

To extend the SCA Composite Designer:

  1. Create a new plugin-in
  2. 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.yourmodel,
    • xyz.yourmodel.edit
  3. 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


Example

<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>
 
  <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>