<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>

	<extension
		point="org.eclipse.jpt.ui.jpaPlatformUis">
		 
		<jpaPlatformUi
			id="org.eclipse.eclipselink.platform.ui"
			jpaPlatform="org.eclipse.eclipselink.platform"
			factoryClass="org.eclipse.jpt.eclipselink.ui.internal.platform.EclipseLinkJpaPlatformUiFactory"/>
			
		<jpaPlatformUi
			id="eclipselink1_1.ui"
			jpaPlatform="eclipselink1_1"
			factoryClass="org.eclipse.jpt.eclipselink.ui.internal.v1_1.platform.EclipseLink1_1JpaPlatformUiFactory"/>

		<jpaPlatformUi
			id="eclipselink2_0.ui"
			jpaPlatform="eclipselink2_0"
			factoryClass="org.eclipse.jpt.eclipselink.ui.internal.v2_0.platform.EclipseLink2_0JpaPlatformUiFactory"/>
		
	</extension>
   
   
   <extension
		point="org.eclipse.ui.newWizards">
		
		<category
			id="org.eclipse.jpt.eclipselink"
			name="%eclipseLinkWizardCategoryName"
			parentCategory="org.eclipse.jpt"/>
		
		<wizard
            id="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLinkMappingFile"
			name="%newEclipseLinkMappingFileWizardName"
			icon="platform:/plugin/org.eclipse.jpt.ui/icons/full/etool16/new_jpa_file_wiz.gif"
			category="org.eclipse.jpt/org.eclipse.jpt.eclipselink">
			<description>%newEclipseLinkJpaMappingFileWizardDesc</description>
			<class class="org.eclipse.jpt.eclipselink.ui.internal.wizards.EclipseLinkMappingFileWizard"> 
				<parameter name="javaeeartifact" value="true"/> 
				<parameter name="menuIndex" value="40" /> 
				<parameter name="jptartifact" value="true"/> 
			</class> 
		</wizard>
  <wizard
        category="org.eclipse.jpt/org.eclipse.jpt.eclipselink"
        icon="platform:/plugin/org.eclipse.jpt.ui/icons/full/etool16/new_jpa_file_wiz.gif"
        id="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLink1_1MappingFile"
        name="%newEclipseLink1_1MappingFileWizardName">
     <description>
        %newEclipseLink1_1JpaMappingFileWizardDesc
     </description>
     <class
           class="org.eclipse.jpt.eclipselink.ui.internal.v1_1.wizards.EclipseLink1_1MappingFileWizard">
        <parameter
              name="javaeeartifact"
              value="true">
        </parameter>
        <parameter
              name="menuIndex"
              value="40">
        </parameter>
        <parameter
              name="jptartifact"
              value="true">
        </parameter>
     </class>
  </wizard>
      
	</extension>


	<extension
		point="org.eclipse.ui.navigator.navigatorContent">
		
		<commonWizard
			menuGroupId="org.eclipse.jpt.ui"
			type="new"
			wizardId="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLinkMappingFile">
			<enablement>
				<and>
					<or>
						<instanceof value="org.eclipse.core.resources.IProject"/>
                    	<instanceof value="org.eclipse.core.resources.IFolder"/>
						<instanceof value="org.eclipse.jdt.core.IPackageFragmentRoot"/>
						<instanceof value="org.eclipse.jdt.core.IPackageFragment"/>
					</or>
					<adapt type="org.eclipse.core.resources.IResource">
						<test 
							forcePluginActivation="true"
							property="org.eclipse.wst.common.project.facet.core.projectFacet"
							value="jpt.jpa" />
					</adapt>
     <or>
        <test
              property="org.eclipse.jpt.core.jpaPlatform"
              value="org.eclipse.eclipselink.platform">
        </test>
        <test
              property="org.eclipse.jpt.core.jpaPlatform"
              value="eclipselink1_1">
        </test>
     </or>
				</and>
			</enablement>
		</commonWizard>
  <commonWizard
        menuGroupId="org.eclipse.jpt.ui"
        type="new"
        wizardId="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLink1_1MappingFile">
     <enablement>
        <and>
           <or>
              <instanceof
                    value="org.eclipse.core.resources.IProject">
              </instanceof>
              <instanceof
                    value="org.eclipse.core.resources.IFolder">
              </instanceof>
              <instanceof
                    value="org.eclipse.jdt.core.IPackageFragmentRoot">
              </instanceof>
              <instanceof
                    value="org.eclipse.jdt.core.IPackageFragment">
              </instanceof>
           </or>
           <adapt
                 type="org.eclipse.core.resources.IResource">
              <test
                    forcePluginActivation="true"
                    property="org.eclipse.wst.common.project.facet.core.projectFacet"
                    value="jpt.jpa">
              </test>
           </adapt>
           <test
                 property="org.eclipse.jpt.core.jpaPlatform"
                 value="eclipselink1_1">
           </test>
        </and>
     </enablement>
  </commonWizard>
		
	</extension>
	
	
	<extension
		point="org.eclipse.ui.perspectiveExtensions">
		
		<perspectiveExtension
			targetID="org.eclipse.jpt.ui.jpaPerspective">
			<newWizardShortcut
				id="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLinkMappingFile">
			</newWizardShortcut>
   			<newWizardShortcut
         		id="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLink1_1MappingFile">
   			</newWizardShortcut>
		</perspectiveExtension>
		
	</extension>
	
</plugin>
