<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
   <!--======================-->
   <!-- CDT Core Integration -->
   <!--======================-->
   <extension
         point="org.eclipse.cdt.core.language">
      <language
            class="org.eclipse.photran.internal.cdtinterface.core.FortranLanguage"
            id="fortran"
            name="Fortran">
         <contentType id="org.eclipse.photran.core.fixedFormFortranSource"/>
         <contentType id="org.eclipse.photran.core.freeFormFortranSource"/>
      </language>
   </extension>

   <!--==================-->
   <!-- CDT Launch Clone -->
   <!--==================-->

   <!-- Fortran Launch Configuration (visible in "Run..." dialog)-->
   <extension
         point="org.eclipse.debug.core.launchConfigurationTypes">
      <launchConfigurationType
            sourceLocatorId="org.eclipse.cdt.debug.core.sourceLocator"
            delegate="org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate"
            public="true"
            sourcePathComputerId="org.eclipse.cdt.debug.core.sourcePathComputer"
            name="Fortran Local Application"
            id="org.eclipse.photran.launch.localCLaunch"
            modes="run,debug">
      </launchConfigurationType>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
      <launchConfigurationTypeImage
            icon="icons/obj16/f_app.gif"
            configTypeID="org.eclipse.photran.launch.localCLaunch"
            id="org.eclipse.photran.launch.localRunLaunchImage">
      </launchConfigurationTypeImage>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            type="org.eclipse.photran.launch.localCLaunch"
            class="org.eclipse.photran.internal.cdtinterface.launch.FortranLocalRunLaunchConfigurationTabGroup"
            id="org.eclipse.photran.launch.localRunLaunchTabGroup">
      </launchConfigurationTabGroup>
   </extension>
   <!-- Fortran Application Launch Shortcut (Run As > Local Fortran Application) -->
   <extension
         point="org.eclipse.debug.ui.launchShortcuts">
      <shortcut
            label="Local Fortran Application"
            icon="icons/obj16/f_app.gif"
            modes="run, debug"
            class="org.eclipse.photran.internal.cdtinterface.launch.CApplicationLaunchShortcut"
            id="org.eclipse.photran.debug.ui.localCShortcut">
         <contextualLaunch>
           <enablement>
             <with variable="selection">
               <count value="1"/>
               <iterate>
                   <or>
                     <instanceof value="org.eclipse.cdt.core.model.IBinary"/>
                     <instanceof value="org.eclipse.cdt.core.model.ICProject"/>
                     <test
                           forcePluginActivation="true"
                           property="org.eclipse.cdt.launch.isExecutable"/>
                     <test
                           forcePluginActivation="true"
                           property="org.eclipse.cdt.launch.isCProject"/>
                     <and>
                       <instanceof value="org.eclipse.ui.IFileEditorInput"/>
                       <adapt type="org.eclipse.core.resources.IResource">
                         <adapt type="org.eclipse.cdt.core.model.ICElement"/>
                       </adapt>
                     </and>
                   </or>
               </iterate>
             </with>
           </enablement>
         </contextualLaunch>
         <description
             mode="run"
             description="Runs a local Fortran application"/>
          <description
             mode="debug"
             description="Debugs a local Fortran application"/>
         <configurationType
               id="org.eclipse.photran.launch.localCLaunch">
         </configurationType>
       </shortcut>
   </extension>

   <!--==============-->
   <!-- CDT UI Clone -->
   <!--==============-->

   <!-- Fortran Perspective -->
   <extension
         point="org.eclipse.ui.perspectives">
      <perspective
            name="Fortran"
            icon="icons/etool16/f_pers.gif"
            class="org.eclipse.photran.internal.cdtinterface.ui.FortranPerspectiveFactory"
            id="org.eclipse.photran.ui.FortranPerspective">
      </perspective>
   </extension>
   <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension targetID="org.eclipse.photran.ui.FortranPerspective">
         <perspectiveShortcut id="org.eclipse.debug.ui.DebugPerspective"/>
         <perspectiveShortcut id="org.eclipse.team.ui.TeamSynchronizingPerspective"/>
         <view
               id="org.eclipse.cdt.make.ui.views.MakeView"
               relationship="stack"
               relative="org.eclipse.ui.views.ContentOutline"
               visible="true"/>
         <viewShortcut id="org.eclipse.cdt.make.ui.views.MakeView"/>
         <actionSet id="org.eclipse.cdt.make.ui.makeTargetActionSet"/>

	 <!-- Copied from CDT UI for CDT 4.0 -->
         <actionSet id="org.eclipse.debug.ui.launchActionSet"/>
         <actionSet id="org.eclipse.cdt.ui.buildConfigActionSet"/>
         <actionSet id="org.eclipse.cdt.ui.NavigationActionSet"/>
         <actionSet id="org.eclipse.cdt.ui.OpenActionSet"/>
         <actionSet id="org.eclipse.ui.edit.text.actionSet.presentation"/>
         <!--showInPart id="org.eclipse.cdt.ui.includeBrowser"/-->
         <!--showInPart id="org.eclipse.cdt.ui.CView"/-->
         <!--showInPart id="org.eclipse.ui.navigator.ProjectExplorer"/-->
         <viewShortcut id="org.eclipse.ui.navigator.ProjectExplorer"/>
         <viewShortcut id="org.eclipse.cdt.ui.includeBrowser"/>
      </perspectiveExtension>
   </extension>

   <!-- Fortran Projects View -->
   <extension
         point="org.eclipse.ui.views">
      <category
            name="Fortran"
            id="org.eclipse.photran.ui.views">
      </category>
      <view
            name="Fortran Projects"
            icon="icons/etool16/fview.gif"
            category="org.eclipse.photran.ui.views"
            class="org.eclipse.photran.internal.cdtinterface.ui.FortranView"
            id="org.eclipse.photran.ui.FortranView">
      </view>
   </extension>

   <!-- Fortran Wizards -->
   <extension
         point="org.eclipse.ui.newWizards">
      <category
            name="Fortran"
            id="org.eclipse.photran.ui.newFortranWizards" />

      <!-- New Fortran Project Wizards -->

      <!-- CDT 4.0 and later -->
       <wizard
             canFinishEarly="false"
             category="org.eclipse.photran.ui.newFortranWizards"
             class="org.eclipse.photran.internal.cdtinterface.ui.FortranProjectWizard"
             finalPerspective="org.eclipse.photran.ui.FortranPerspective"
             hasPages="true"
             icon="icons/etool16/newfortran_app.gif"
             id="org.eclipse.photran.ui.wizards.CDT4FortranProjectWizard"
             name="Fortran Project"
             project="true">
         <description>
             Create a new Fortran project
         </description>
      </wizard>

      <!-- New File Wizards -->
      <wizard
            name="Source File"
            icon="icons/etool16/newfortranfile_wiz.gif"
            category="org.eclipse.photran.ui.newFortranWizards"
            finalPerspective="org.eclipse.photran.ui.FortranPerspective"
            id="org.eclipse.photran.ui.wizards.NewSourceFileCreationWizard">
         <class class="org.eclipse.photran.internal.cdtinterface.ui.NewSourceFileCreationWizard">
            <parameter name="cfile" value="true"/>
         </class>
         <description>
            Create a new source file
         </description>
      </wizard>
      <wizard
            name="File"
            icon="icons/etool16/newfile_wiz.gif"
            category="org.eclipse.photran.ui.newFortranWizards"
            finalPerspective="org.eclipse.photran.ui.FortranPerspective"
            id="org.eclipse.photran.ui.wizards.NewFileCreationWizard">
         <class class="org.eclipse.cdt.ui.wizards.NewFileCreationWizard">
            <parameter name="cfile" value="true"/>
         </class>
         <description>
            Create a new file (not necessarily source code)
         </description>
      </wizard>
      <wizard
            name="Source Folder"
            icon="icons/etool16/newsrcfldr_wiz.gif"
            category="org.eclipse.photran.ui.newFortranWizards"
            finalPerspective="org.eclipse.photran.ui.FortranPerspective"
            id="org.eclipse.photran.ui.wizards.NewSourceFolderCreationWizard">
         <class class="org.eclipse.photran.internal.cdtinterface.ui.NewSourceFolderCreationWizard">
            <parameter name="cfolder" value="true"/>
         </class>
         <description>
            Create a new folder intended to contain source code
         </description>
      </wizard>
      <wizard
            name="Folder"
            icon="icons/etool16/newfolder_wiz.gif"
            category="org.eclipse.photran.ui.newFortranWizards"
            finalPerspective="org.eclipse.photran.ui.FortranPerspective"
            id="org.eclipse.photran.ui.wizards.NewFolderCreationWizard">
         <class class="org.eclipse.cdt.ui.wizards.NewFolderCreationWizard">
            <parameter name="cfolder" value="true"/>
         </class>
         <description>
            Create a new folder (not necessarily containing source code)
         </description>
      </wizard>
   </extension>
   <extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            description="Fortran Element Creation Action Set"
            id="org.eclipse.photran.cdtinterface.FortranElementCreationActionSet"
            label="Fortran Element Creation"
            visible="false">
         <action
               class="org.eclipse.photran.internal.cdtinterface.ui.NewFileDropDownAction"
               icon="icons/etool16/newfortranfile_wiz.gif"
               id="org.eclipse.photran.cdtinterface.actions.NewFileDropDown"
               label="&amp;Source File..."
               style="pulldown"
               toolbarPath="Normal/FortranWizards"
               tooltip="New Source File"/>
         <action
               class="org.eclipse.photran.internal.cdtinterface.ui.NewFolderDropDownAction"
               icon="icons/etool16/newsrcfldr_wiz.gif"
               id="org.eclipse.photran.cdtinterface.actions.NewFolderDropDown"
               label="&amp;Source Folder..."
               style="pulldown"
               toolbarPath="Normal/FortranWizards"
               tooltip="New Source Folder"/>
         <action
               class="org.eclipse.photran.internal.cdtinterface.ui.NewProjectDropDownAction"
               icon="icons/etool16/newfortran_app.gif"
               id="org.eclipse.photran.cdtinterface.actions.NewProjectDropDown"
               label="&amp;Project..."
               style="pulldown"
               toolbarPath="Normal/FortranWizards"
               tooltip="New Compiled Language Project"/>
      </actionSet>
   </extension>

   <!--====================-->
   <!-- New File Templates -->
   <!--====================-->

   <extension
         point="org.eclipse.ui.editors.templates">
      <!--contextType
            name="%c.contextType.name"
            class="org.eclipse.cdt.internal.corext.template.c.CContextType"
            id="org.eclipse.cdt.ui.text.templates.c">
      </contextType-->
      <include file="templates/fortran-codetemplates.xml" />
   </extension>

   <!--=======================-->
   <!-- New Project Templates -->
   <!--=======================-->

   <extension point="org.eclipse.cdt.core.templates">
      <!-- Templates -->
      <template
            filterPattern=".*"
            id="org.eclipse.photran.projects.HelloWorldFortranProject"
            location="templates/HelloWorldFortranProject/template.xml"
            projectType="org.eclipse.cdt.build.makefile.projectType">
      </template>
      <template
            filterPattern=".*"
            id="org.eclipse.photran.projects.MPIHelloWorldFortranProject"
            location="templates/MPIHelloWorldFortranProject/template.xml"
            projectType="org.eclipse.cdt.build.makefile.projectType">
      </template>
      <template
            filterPattern=".*"
            id="org.eclipse.photran.projects.MPIPiFortranProject"
            location="templates/MPIPiFortranProject/template.xml"
            projectType="org.eclipse.cdt.build.makefile.projectType">
      </template>
   </extension>
   <!-- Custom Process Runners (referenced in template.xml files) -->
   <extension point="org.eclipse.cdt.core.templateProcessTypes">
      <processType
            name="addFortranErrorParsers"
            processRunner="org.eclipse.photran.internal.cdtinterface.templates.AddFortranErrorParsersProcessRunner">
      </processType>
      <processType
            name="addAllBinaryParsers"
            processRunner="org.eclipse.photran.internal.cdtinterface.templates.AddAllBinaryParsersProcessRunner">
      </processType>
   </extension>


   <!--=============================-->
   <!-- ActionSet-part associations -->
   <!--=============================-->
   <extension
         point="org.eclipse.ui.actionSetPartAssociations">
      <actionSetPartAssociation
            targetID="org.eclipse.cdt.ui.SearchActionSet">
         <part id="org.eclipse.photran.ui.FortranView"/>
         <part id="org.eclipse.search.SearchResultView"/>
      </actionSetPartAssociation>
   </extension>

   <!--===============================-->
   <!-- Model Builder Extension Point -->
   <!--===============================-->

   <extension-point id="modelbuilder" name="Model Builder" schema="schema/modelbuilder.exsd"/>

   <!--============================-->
   <!-- DOM Parser Extension Point -->
   <!--============================-->

   <extension-point id="domparser" name="DOM Parser" schema="schema/domparser.exsd"/>

   <!--============================================-->
   <!-- Convert C/C++ Projects to Photran Projects -->
   <!--============================================-->
   <extension point="org.eclipse.ui.popupMenus">
      <viewerContribution
         id="org.eclipse.photran.ui.ViewActions"
         targetID="org.eclipse.photran.ui.FortranView">
         <visibility>
            <objectState name="nature" value="org.eclipse.cdt.core.cnature" />
         </visibility>
         <action
            id="org.eclipse.photran.cdtinterface.ui.ProjectConversionAction"
            label="Convert to Fortran Project"
            menubarPath="additions"
            icon="icons/obj16/f_file_obj.gif"
            class="org.eclipse.photran.internal.cdtinterface.ui.ProjectConversionAction" />
      </viewerContribution>
   </extension>

</plugin>
