<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2007, 2012 Oracle. 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:
    Oracle - initial API and implementation
 -->

<plugin>

	<extension
		point="org.eclipse.jpt.jpa.ui.jpaPlatformUis">
		 
		<jpaPlatformUi
			id="org.eclipse.eclipselink.platform.ui"
			jpaPlatform="org.eclipse.eclipselink.platform"
			factoryClass="org.eclipse.jpt.jpa.eclipselink.ui.internal.platform.EclipseLinkJpaPlatformUiFactory"/>
			
		<jpaPlatformUi
			id="eclipselink1_1.ui"
			jpaPlatform="eclipselink1_1"
			factoryClass="org.eclipse.jpt.jpa.eclipselink.ui.internal.platform.EclipseLink1_1JpaPlatformUiFactory"/>
			
		<jpaPlatformUi
			id="eclipselink1_2.ui"
			jpaPlatform="eclipselink1_2"
			factoryClass="org.eclipse.jpt.jpa.eclipselink.ui.internal.platform.EclipseLink1_2JpaPlatformUiFactory"/>
		
		<jpaPlatformUi
			id="eclipselink2_0.ui"
			jpaPlatform="eclipselink2_0"
			factoryClass="org.eclipse.jpt.jpa.eclipselink.ui.internal.platform.EclipseLink2_0JpaPlatformUiFactory"/>
		
		<jpaPlatformUi
			id="eclipselink2_1.ui"
			jpaPlatform="eclipselink2_1"
			factoryClass="org.eclipse.jpt.jpa.eclipselink.ui.internal.platform.EclipseLink2_1JpaPlatformUiFactory"/>
		
		<jpaPlatformUi
			id="eclipselink2_2.ui"
			jpaPlatform="eclipselink2_2"
			factoryClass="org.eclipse.jpt.jpa.eclipselink.ui.internal.platform.EclipseLink2_2JpaPlatformUiFactory"/>
		
		<jpaPlatformUi
			id="eclipselink2_3.ui"
			jpaPlatform="eclipselink2_3"
			factoryClass="org.eclipse.jpt.jpa.eclipselink.ui.internal.platform.EclipseLink2_3JpaPlatformUiFactory"/>
		
		<jpaPlatformUi
			id="eclipselink2_4.ui"
			jpaPlatform="eclipselink2_4"
			factoryClass="org.eclipse.jpt.jpa.eclipselink.ui.internal.platform.EclipseLink2_4JpaPlatformUiFactory"/>
	</extension>
	
	
	<extension
		point="org.eclipse.ui.newWizards">
		
		<category
			id="org.eclipse.jpt.jpa.eclipselink"
			name="%eclipseLinkWizardCategoryName"
			parentCategory="org.eclipse.jpt.jpa"/>
		
		<wizard
            id="org.eclipse.jpt.jpa.eclipselink.ui.wizard.newEclipseLinkMappingFile"
			name="%newEclipseLinkMappingFileWizardName"
			icon="platform:/plugin/org.eclipse.jpt.jpa.ui/icons/full/etool16/new_jpa_file_wiz.gif"
			category="org.eclipse.jpt.jpa/org.eclipse.jpt.jpa.eclipselink">
			<description>%newEclipseLinkJpaMappingFileWizardDesc</description>
			<class class="org.eclipse.jpt.jpa.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.jpa/org.eclipse.jpt.jpa.eclipselink"
			class="org.eclipse.jpt.jpa.eclipselink.ui.internal.wizards.gen.GenerateDynamicEntitiesFromSchemaWizard"
			icon="platform:/plugin/org.eclipse.jpt.jpa.ui/icons/full/etool16/new_jpa_file_wiz.gif"
			id="org.eclipse.jpt.jpa.eclipselink.ui.wizard.newDynamicEntitiesFromTables"
			name="%newDynamicEntityFromTableWizardName">
			<description>%newDynamicEntityFromTableWizardDesc</description>
			<selection class="org.eclipse.core.resources.IResource"/> 
        </wizard>		
		    
	</extension>


	<extension
		point="org.eclipse.ui.navigator.navigatorContent">
		
		<commonWizard
			menuGroupId="org.eclipse.jpt.jpa.ui"
			type="new"
			wizardId="org.eclipse.jpt.jpa.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 
							property="org.eclipse.wst.common.project.facet.core.projectFacet"
							value="jpt.jpa"
							forcePluginActivation="true"/>
					</adapt>
					<adapt type = "org.eclipse.jpt.jpa.core.platform.JpaPlatformDescription">
						<test property="org.eclipse.jpt.jpa.core.jpaPlatformGroup"
							value="eclipselink"/>
					</adapt>
				</and>
			</enablement>
		</commonWizard>
		
	</extension>
	
	
	<extension
		point="org.eclipse.ui.perspectiveExtensions">
		
		<perspectiveExtension
			targetID="org.eclipse.jpt.ui.jpaPerspective">
			<newWizardShortcut
				id="org.eclipse.jpt.jpa.eclipselink.ui.wizard.newEclipseLinkMappingFile">
			</newWizardShortcut>
		</perspectiveExtension>
		
	</extension>

	<extension
		point="org.eclipse.ui.propertyPages">

		<page
			id="org.eclipse.jpt.jpa.ui.jpaProjectProperties"
			name="%jpaNode"
			class="org.eclipse.jpt.jpa.ui.internal.properties.JpaProjectPropertiesPage">
			<enabledWhen>
				<adapt type="org.eclipse.core.resources.IProject">
					<test 
						forcePluginActivation="true"
						property="org.eclipse.wst.common.project.facet.core.projectFacet"
						value="jpt.jpa"/>
				</adapt>
			</enabledWhen>
		</page>
		
		<page
			id="org.eclipse.jpt.jpa.eclipselink.ui.eclipselinkProjectProperties"
			name="%eclipseLinkNode"
			category="org.eclipse.jpt.jpa.ui.jpaProjectProperties"
			class="org.eclipse.jpt.jpa.eclipselink.ui.internal.weave.EclipselinkPreferencePage">
			<enabledWhen>
				<adapt type="org.eclipse.core.resources.IProject">
					<test
						forcePluginActivation="true"
						property="org.eclipse.wst.common.project.facet.core.projectFacet"
						value="jpt.jpa"/>
				</adapt>
			</enabledWhen>
		</page>
		
	</extension>

	<!-- ***** commands ***** -->

  	<extension
        point="org.eclipse.ui.commands">
		
		<command
			id="org.eclipse.jpt.jpa.eclipselink.ui.persistentTypeAddVirtualAttribute"
			name="%addVirtualAttribute"
			categoryId="org.eclipse.jpt.jpa.ui.jpaStructureViewCommands"/>
		
		<command
			id="org.eclipse.jpt.jpa.eclipselink.ui.convertJavaConverters"
			name="%convertJavaConverters"
			categoryId="org.eclipse.jpt.jpa.ui.jpaMetadataConversionCommands"/>
		
		<command
			id="org.eclipse.jpt.jpa.eclipselink.ui.generateDynamicEntities"
			name="%generateDynamicEntities"/>

  	</extension>

	<!-- ***** handlers ***** -->

   <extension
          point="org.eclipse.ui.handlers">
		
		<handler
			commandId="org.eclipse.jpt.jpa.eclipselink.ui.persistentTypeAddVirtualAttribute"
			class="org.eclipse.jpt.jpa.eclipselink.ui.internal.handlers.AddVirtualAttributeHandler">
			<activeWhen>
				<and>
					<with variable="activePartId">
		    			<equals value="org.eclipse.jpt.ui.jpaStructureView"/>
		   			</with>
					<with variable="selection">
						<count value="1"/>
						<iterate operator="and">
							<instanceof value="org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkOrmPersistentType"/>
							<test property="org.eclipse.jpt.jpa.core.isCompatibleVersion" value="&apos;2.1&apos;"/>
						</iterate>
					</with>
				</and>
			</activeWhen>
		</handler>
		
		<handler
			commandId="org.eclipse.jpt.jpa.eclipselink.ui.convertJavaConverters"
			class="org.eclipse.jpt.jpa.eclipselink.ui.internal.commands.JpaJavaConverterMetadataConversionHandler">
		</handler>
		
		<handler
			commandId="org.eclipse.jpt.jpa.eclipselink.ui.generateDynamicEntities"
			class="org.eclipse.jpt.jpa.eclipselink.ui.internal.commands.GenerateDynamicEntitiesHandler">
		</handler>
		
	</extension>
	
	
	<!-- ***** menus ***** -->

	<extension
		point="org.eclipse.ui.menus">
		
		<!-- contributions to the "JPA Tools" submenu -->
		<menuContribution
			locationURI="popup:org.eclipse.jpt.jpa.ui.menu.JpaTools?after=generate">
			
			<command
				commandId="org.eclipse.jpt.jpa.eclipselink.ui.generateDynamicEntities">
				<visibleWhen>
					<with
						variable="selection">
						<and>
							<count value="1"/>
							<iterate>
								<and>
									<adapt type="org.eclipse.core.resources.IProject">
										<test
											property="org.eclipse.wst.common.project.facet.core.projectFacet"
											value="jpt.jpa"/>
									</adapt>
									<adapt type="org.eclipse.jpt.jpa.core.platform.JpaPlatformDescription">
										<test 
											property="org.eclipse.jpt.jpa.core.jpaPlatformGroup"
											value="eclipselink"/>
									</adapt>
								</and>
							</iterate>
						</and>
					</with>
				</visibleWhen>
			</command>
			
		</menuContribution>
		
		<!-- contributions to objects in the JPA structure view -->
		<menuContribution
			locationURI="popup:org.eclipse.jpt.ui.jpaStructureView">
			
			<command
				commandId="org.eclipse.jpt.jpa.eclipselink.ui.persistentTypeAddVirtualAttribute">
				<visibleWhen>
					<with variable="selection">
						<count value="1"/>
						<iterate operator="and">
							<instanceof value="org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkOrmPersistentType"/>
							<test property="org.eclipse.jpt.jpa.core.isCompatibleVersion" value="&apos;2.1&apos;"/>
						</iterate>
					</with>
				</visibleWhen>
			</command>
		</menuContribution>
		
	 </extension>
 	
 	 <extension
		point="org.eclipse.ui.menus">
        
        <!-- contributions to "Move to XML" submenu-->
        <menuContribution
			locationURI="popup:org.eclipse.jpt.jpa.ui.menu.moveToXml">
			
			<command
				commandId="org.eclipse.jpt.jpa.eclipselink.ui.convertJavaConverters">	
				<visibleWhen
					checkEnabled="false">
					<with
						variable="activeMenuSelection">
						<iterate 
							ifEmpty="false"
							operator="and">
							<adapt
								type="org.eclipse.core.resources.IProject">
								<test
									property="org.eclipse.wst.common.project.facet.core.projectFacet" 
									value="jpt.jpa"/>
							</adapt>
							<adapt type = "org.eclipse.jpt.jpa.core.platform.JpaPlatformDescription">
								<test
									property="org.eclipse.jpt.jpa.core.jpaPlatformGroup"
									value="eclipselink"/>
							</adapt>
						</iterate>
					</with>
				</visibleWhen>
			</command>
			
		</menuContribution>
	
	</extension>
	
</plugin>
