<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
     Copyright (c) 2005, 2011 IBM Corporation and others.
     All rights reserved. This program and the accompanying materials
     are made available under the terms of the Eclipse Public License v1.0
     which accompanies this distribution, and is available at
     http://www.eclipse.org/legal/epl-v10.html
    
     Contributors:
         IBM Corporation - initial API and implementation
 -->

<plugin>
   
     <extension-point id="macroSupport" name="Macro Support" schema="schema/macroSupport.exsd"/>
   <extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            label="Sample Action Set"
            visible="true"
            id="org.eclipse.ui.macro.actionSet">
         <menu
               label="&amp;Macros..."
               path="window/additions"
               id="macro">
            <separator name="group1"/>
         </menu>
         <action
               toolbarPath="sampleGroup"
               label="&amp;Start Recording"
               class="org.eclipse.pde.internal.ui.tests.macro.RecordAction"
               tooltip="Start Recording"
               icon="icons/external_tools.gif"
               menubarPath="window/macro/group1"
               id="org.eclipse.pde.ui.tests.RecordAction"/>
         <action
               class="org.eclipse.pde.internal.ui.tests.macro.IndexAction"
               definitionId="org.eclipse.pde.ui.tests.index"
               icon="icons/suspend_co.gif"
               id="org.eclipse.pde.ui.tests.IndexAction"
               label="&amp;Pause for Indexing"
               menubarPath="window/macro/group1"
               toolbarPath="sampleGroup"
               tooltip="Pause for Indexing"/>
         <action
               class="org.eclipse.pde.internal.ui.tests.macro.StopAction"
               definitionId="org.eclipse.pde.ui.tests.stopRecording"
               icon="icons/terminate_co.gif"
               id="org.eclipse.pde.ui.tests.StopAction"
               label="S&amp;top Recording"
               menubarPath="window/macro/group1"
               toolbarPath="sampleGroup"
               tooltip="Stop Recording"/>
         <action
               enablesFor="1"
               toolbarPath="sampleGroup"
               label="&amp;Playback"
               icon="icons/run_exc.gif"
               tooltip="&amp;Run Macro"
               class="org.eclipse.pde.internal.ui.tests.macro.PlaybackAction"
               menubarPath="window/macro/group1"
               id="org.eclipse.pde.ui.tests.PlaybackAction">
            <enablement>
            	<and>
   					<objectClass name="org.eclipse.core.resources.IFile"/>
   						<objectState name="extension" value="emc"/>
  				</and>
 			</enablement>
 		</action>
     </actionSet>
   </extension>
   <extension
         point="org.eclipse.pde.ui.tests.macroSupport">
      <widgetResolver class="org.eclipse.pde.internal.ui.tests.macro.DefaultWidgetResolver"/>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <command
            description="Stops the recording of the macro"
            categoryId="org.eclipse.ui.category.window"
            name="Stop Macro Recording"
            id="org.eclipse.pde.ui.tests.stopRecording"/>
     <command
            description="Places a named index in the macro"
            categoryId="org.eclipse.ui.category.window"
            name="Index Macro"
            id="org.eclipse.pde.ui.tests.index"/>
      <keyBinding
            contextId="org.eclipse.ui.contexts.dialogAndWindow"
            commandId="org.eclipse.pde.ui.tests.stopRecording"
            keySequence="Ctrl+Shift+F11"
            keyConfigurationId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
      <keyBinding
            contextId="org.eclipse.ui.contexts.dialogAndWindow"
            commandId="org.eclipse.pde.ui.tests.index"
            keySequence="Ctrl+Shift+F10"
            keyConfigurationId="org.eclipse.ui.defaultAcceleratorConfiguration"/>            
   </extension>
   <extension
         point="org.eclipse.jdt.launching.executionEnvironments">
      <environment
            description="Java 1.3 without sound APIs (PDE test suite)"
            id="J2SE-1.3-NO-SOUND"
            profileProperties="profiles/J2SE-1.3-NO-SOUND.profile">
      </environment>
      <analyzer
            class="org.eclipse.pde.ui.tests.ee.EnvironmentAnalyzerDelegate"
            id="org.eclipse.pde.ui.tests.ee.analyzer">
      </analyzer>
   </extension>
   <extension
         point="org.eclipse.pde.ui.launchShortcuts">
      <shortcut
            id="org.eclipse.jdt.debug.ui.javaAppletShortcut"
            label="Run this bundle"
            mode="run"
            projectSpecific="true">
      </shortcut>
      <shortcut
            id="org.eclipse.jdt.debug.ui.javaAppletShortcut"
            label="Debug this bundle"
            mode="debug"
            projectSpecific="true">
      </shortcut>
   </extension>
   <extension
         point="org.eclipse.jdt.core.classpathContainerInitializer">
      <classpathContainerInitializer
            class="org.eclipse.pde.ui.tests.project.ClasspathContainerInitializer"
            id="org.eclipse.pde.ui.tests.classpath.container">
      </classpathContainerInitializer>
   </extension>
   <extension
         point="org.eclipse.pde.core.bundleClasspathResolvers">
      <resolver
            class="org.eclipse.pde.ui.tests.classpathresolver.TestBundleClasspathResolver"
            nature="org.eclipse.pde.ui.tests.testNature">
      </resolver>
   </extension>
   <extension
         id="testNature"
         point="org.eclipse.core.resources.natures">
      <runtime>
         <run
               class="org.eclipse.pde.ui.tests.classpathresolver.TestProjectNature">
         </run>
      </runtime>
   </extension>
</plugin>
