<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin
   id="com.ssaglobal.generator.typesafe.dotnet"
   name="%pluginName"
   version="8.7.0.0163"
   provider-name="%providerName"
   class="com.ssaglobal.generator.typesafe.dotnet.TypesafePlugin">

   <runtime>
      <library name="dotnet.jar">
         <export name="*"/>
      </library>
   </runtime>

   <requires>
      <import plugin="org.eclipse.ui"/>
      <import plugin="org.eclipse.core.runtime"/>
      <import plugin="com.ssaglobal.generator"/>
      <import plugin="com.ssaglobal.generator.ui"/>
      <import plugin="com.ssaglobal.istudio.core"/>
      <import plugin="org.eclipse.help" export="true" optional="true"/>
   </requires>
   <extension
         id="TypesafeProxyPackage"
         name=".NET Proxy Generator"
         point="com.ssaglobal.generator.templatepackage">
      <Base
            templateRoot="templates"
            outputRoot="out"/>
      <Template
            engine="FreeMarker"
            appliesToSubclasses="true"
            appliesToClass="com.ssaglobal.istudio.core.model.bid.impl.BusinessInterfaceDefinitionImpl"
            template="BdeManager.ftl"
            nameTemplate="BdeManagerName.ftl"/>
      <Template
            appliesToClass="com.ssaglobal.istudio.core.model.bid.impl.ComponentImpl"
            appliesToSubclasses="true"
            engine="FreeMarker"
            nameTemplate="BdeIteratorName.ftl"
            template="BdeIterator.ftl"/>
      <Template
            engine="FreeMarker"
            appliesToSubclasses="true"
            appliesToClass="com.ssaglobal.istudio.core.model.bid.impl.ComponentImpl"
            template="BdeProxy.ftl"
            nameTemplate="BdeProxyName.ftl"/>
      <Template
            engine="FreeMarker"
            appliesToSubclasses="true"
            appliesToClass="com.ssaglobal.istudio.core.model.bid.Attribute"
            template="BdeComplexType.ftl"
            writer="none"
            nameTemplate="BdeComplexTypeName.ftl">
         <Condition
               propertyName="type"
               propertyValue="group"/>
      </Template>
      <Template
            engine="FreeMarker"
            appliesToSubclasses="true"
            appliesToClass="com.ssaglobal.istudio.core.model.bid.Attribute"
            template="BdeComplexType.ftl"
            writer="none"
            nameTemplate="BdeComplexTypeName.ftl">
         <Condition
               propertyName="type"
               propertyValue="complex"/>
      </Template>               
      <Helper
            appliesToSubclasses="true"
            helperClass="com.ssaglobal.generator.helper.PropertiesHelper"
            appliesToClass="org.eclipse.emf.ecore.impl.EObjectImpl"
            name="properties"/>
      <Helper
            appliesToSubclasses="true"
            helperClass="com.ssaglobal.generator.helper.DateHelper"
            appliesToClass="org.eclipse.emf.ecore.impl.EObjectImpl"
            name="today"/>
      <Helper
            appliesToSubclasses="true"
            appliesToClass="org.eclipse.emf.ecore.impl.EObjectImpl"
            helperClass="com.ssaglobal.generator.helper.VersionHelper"
            name="versionhelper"/>            
      <Property
            value=""
            helpid="com_ssaglobal_generator_typesafe_dotnet_namespace"
            name="namespace"/>
   </extension>
   <extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            objectClass="com.ssaglobal.istudio.core.model.bid.BusinessInterfaceDefinition"
            id="com.ssaglobal.generator.typesafe.dotnet.contribution1">
         <menu
               label="&amp;Proxy Generator"
               path="additions"
               id="com.ssaglobal.generator.ui.proxymenu">
            <separator name="group1"/>
         </menu>
         <action
               class="com.ssaglobal.generator.typesafe.dotnet.TypesafeGenerateAction"
               definitionId="com.ssaglobal.istudio.generator.dotnetproxy"
               enablesFor="+"
               id="com.ssaglobal.generator.typesafe.dotnet.Generate"
               label=".&amp;NET Proxy"
               menubarPath="com.ssaglobal.generator.ui.proxymenu/group1"/>
      </objectContribution>
      <objectContribution
            objectClass="org.eclipse.core.resources.IFile"
            nameFilter="*.bid"
            id="com.ssaglobal.generator.typesafe.dotnet.contribution2">
         <menu
               label="&amp;Proxy Generator"
               path="additions"
               id="com.ssaglobal.generator.ui.proxymenu">
            <separator name="group1"/>
         </menu>
         <action
               enablesFor="+"
               label=".&amp;NET Proxy"
               class="com.ssaglobal.generator.typesafe.dotnet.TypesafeGenerateAction"
               menubarPath="com.ssaglobal.generator.ui.proxymenu/group1"
               id="com.ssaglobal.generator.typesafe.dotnet.Generate"/>
      </objectContribution>
   </extension>
   <extension
         point="org.eclipse.ui.preferencePages">
      <page
            class="com.ssaglobal.generator.typesafe.dotnet.TypesafePreferencePage"
            category="com.ssaglobal.generator.ui.GeneratorMainPreferencePage"
            name=".NET Proxy"
            id="com.ssaglobal.generator.typesafe.dotnet.TypesafePreferencePage"/>
   </extension>
   <extension
         point="org.eclipse.core.runtime.preferences">
      <initializer class="com.ssaglobal.generator.typesafe.dotnet.TypesafePreferenceInitializer"/>
   </extension>
   <extension
         point="org.eclipse.ui.propertyPages">
          <page
                class="com.ssaglobal.generator.typesafe.dotnet.TypesafePropertyPage"
                name=".NET Proxy Generator"
                id="com.ssaglobal.generator.typesafe.dotnet.TypesafePropertyPage">
             <filter
                   value="com.ssaglobal.istudio.core.nature"
                   name="nature"/>
             <enabledWhen>
                <instanceof
                      value="org.eclipse.core.resources.IProject">
                </instanceof>
             </enabledWhen>
          </page>
   </extension>
  <extension
        id="TypeSafeDotNETStartup"
        name=".NET Proxy Generator"
        point="org.eclipse.ui.startup">
  </extension>
  <extension
        point="org.eclipse.ui.bindings">
     <key
           commandId="com.ssaglobal.istudio.generator.dotnetproxy"
           contextId="com.ssaglobal.istudio.ui.integration"
           schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
           sequence="M1+M2+7"/>
  </extension>
  <extension
        point="org.eclipse.ui.commands">
     <command
           categoryId="com.ssaglobal.istudio.ui.integration"
           id="com.ssaglobal.istudio.generator.dotnetproxy"
           name="Generate .NET Proxy"/>
  </extension>
</plugin>
