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

     <extension-point id="componentWorkingSet" name="Component Working Set" schema="schema/componentWorkingSet.exsd"/>
   
<!-- Drop Adapter for Adding Modules to EARs -->
   <extension
         id="org.eclipse.jst.j2ee.internal.ui.navigator.addModule.dropHandler"
         point="org.eclipse.wst.common.navigator.views.dropHandler">
      <dropHandler
            class="org.eclipse.jst.j2ee.navigator.internal.dnd.AddModuleDropAction"
            id="org.eclipse.jst.j2ee.internal.ui.navigator.addModule.dropHandler"
            name="%J2EE_Add_Module"
            description="%Adds_J2EE_modules_to_EAR_projects">
         <dragEnablement>
            <or>
               <or>
                  <objectClass
                        name="org.eclipse.jst.j2ee.client.ApplicationClient">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.jca.Connector">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.ejb.EJBJar">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.webapplication.WebApp">
                  </objectClass>
               </or>
               <and>
                  <objectClass
                        name="org.eclipse.core.resources.IProject">
                  </objectClass>
                  <or>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.EARNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.ejb.EJBNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.ApplicationClientNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.web.WebNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.jca.ConnectorNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jdt.core.javanature">
                     </objectState>
                  </or>
               </and>
            </or>
         </dragEnablement>
         <dropEnablement
            validatorClass="org.eclipse.jst.j2ee.navigator.internal.dnd.AddModuleDropAction">
            <or>
               <and>
                  <objectClass
                        name="org.eclipse.core.resources.IProject">
                  </objectClass>
                  <objectState
                        name="projectNature"
                        value="org.eclipse.jst.j2ee.EARNature">
                  </objectState>
               </and>
               <or>
                  <objectClass
                        name="org.eclipse.jst.j2ee.application.Application">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.internal.earcreation.modulemap.EARProjectMap">
                  </objectClass>
               </or>
            </or>
         </dropEnablement>
         <serializers>
            <serializer
                  class="org.eclipse.jst.j2ee.navigator.internal.dnd.ModuleIdentifierSerializer"
                  id="org.eclipse.jst.j2ee.navigator.internal.dnd.ModuleIdentifierSerializer">
            </serializer>
         </serializers>
      </dropHandler>
   </extension>
   <!-- Drop Adapter for Adding Utility Jars to EARs -->
   <extension
         id="org.eclipse.jst.navigator.j2ee.dnd.addUtilityJar.dropHandler"
         point="org.eclipse.wst.common.navigator.views.dropHandler">
      <dropHandler
            class="org.eclipse.jst.j2ee.navigator.internal.dnd.AddUtilityJarDropAction"
            id="org.eclipse.jst.j2ee.internal.ui.navigator.addUtilityJar.dropHandler"
            name="%J2EE_Add_Utility_Jar"
            description="%Adds_Utility_Jars_to_EAR_projects">
         <dragEnablement>
            <or>
               <or>
                  <objectClass
                        name="org.eclipse.jst.j2ee.client.ApplicationClient">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.jca.Connector">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.ejb.EJBJar">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.webapplication.WebApp">
                  </objectClass>
               </or>
               <and>
                  <objectClass
                        name="org.eclipse.core.resources.IProject">
                  </objectClass>
                  <objectState
                        name="projectNature"
                        value="org.eclipse.jdt.core.javanature">
                  </objectState>
               </and>
            </or>
         </dragEnablement>
         <dropEnablement
            validatorClass="org.eclipse.jst.j2ee.navigator.internal.dnd.AddUtilityJarDropAction">
            <or>
               <and>
                  <objectClass
                        name="org.eclipse.core.resources.IProject">
                  </objectClass>
                  <objectState
                        name="projectNature"
                        value="org.eclipse.jst.j2ee.EARNature">
                  </objectState>
               </and>
               <or>
                  <objectClass
                        name="org.eclipse.jst.j2ee.application.Application">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.internal.earcreation.modulemap.EARProjectMap">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.internal.provider.J2EEUtilityJarItemProvider">
                  </objectClass>
               </or>
            </or>
         </dropEnablement>
         <serializers>
            <serializer
                  class="org.eclipse.jst.navigator.j2ee.dnd.ModuleIdentifierSerializer"
                  id="org.eclipse.jst.navigator.j2ee.dnd.utilityJarIdentifierSerializer">
            </serializer>
         </serializers>
      </dropHandler>
   </extension>
   <extension
         id="org.eclipse.jst.navigator.j2ee.dnd.utilityJarImport.dropHandler"
         point="org.eclipse.wst.common.navigator.views.dropHandler">
      <dropHandler
            class="org.eclipse.jst.j2ee.navigator.internal.dnd.AddExternalUtilityJarDropAction"
            id="org.eclipse.jst.j2ee.navigator.internal.dnd.utilityJarImport.dropHandler"
            name="%J2EE_Utility_Jar_Import"
            description="%Import_a_jar_file_UI_">
         <dropEnablement>
            <or>
               <objectClass
                     name="org.eclipse.jst.j2ee.application.Application">
               </objectClass>
               <objectClass
                     name="org.eclipse.jst.j2ee.internal.provider.J2EEUtilityJarItemProvider">
               </objectClass>
            </or>
         </dropEnablement>
      </dropHandler>
   </extension>
   <extension
         id="org.eclipse.jst.navigator.j2ee.dnd.j2eeImport.dropHandler"
         point="org.eclipse.wst.common.navigator.views.dropHandler">
      <dropHandler
            class="org.eclipse.jst.j2ee.navigator.internal.dnd.J2EEImportDropAction"
            id="org.eclipse.jst.j2ee.navigator.internal.dnd.j2eeImport.dropHandler"
            name="%J2EE_Import"
            description="%J2EE_IMPORT_MESSAGE">
         <dropEnablement>
            <or>
               <and>
                  <or>
	                  <objectClass
    	                    name="org.eclipse.core.resources.IProject">
        	          </objectClass>
            	      <objectClass
                	        name="org.eclipse.wst.common.navigator.internal.groups.NavigatorGroup">
	                  </objectClass>
                  </or>
                  <or>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.EARNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.ejb.EJBNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.ApplicationClientNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.web.WebNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.jca.ConnectorNature">
                     </objectState>
                  </or>
               </and>
              <objectClass
                    name="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.application.Application">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.client.ApplicationClient">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.jca.Connector">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.ejb.EJBJar">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.webapplication.WebApp">
              </objectClass>
            </or>
         </dropEnablement>
      </dropHandler>
   </extension>
   
   <extension
         point="org.eclipse.wst.common.navigator.views.navigatorContent">
      <navigatorContent
            name="%extension.j2ee.name"
            priority="higher"
            icon="icons/J2EEPerspective.gif" 
            contentProvider="org.eclipse.jst.j2ee.navigator.internal.J2EEContentProvider"
            labelProvider="org.eclipse.jst.j2ee.navigator.internal.J2EELabelProvider"
            actionProvider="org.eclipse.jst.j2ee.navigator.internal.J2EEActionProvider"
            openListener="org.eclipse.jst.j2ee.internal.actions.J2EEResourceOpenListener"
            id="org.eclipse.jst.navigator.j2ee.ui.J2EEContent.experimental">
         <enables>
         <or>
            <and>
               <objectClass
                     name="org.eclipse.core.resources.IProject">
               </objectClass>
               <or>
                  <objectState
                        name="nature"
                        value="org.eclipse.wst.common.modulecore.ModuleCoreNature">
                  </objectState>
              
               </or>
            </and>      
            <objectClass name="org.eclipse.jst.j2ee.internal.ejb.provider.J2EEJavaClassProviderHelper" />      
            </or>
         </enables>
         
         <emfEnablement>
         	<package uri="org.eclipse.emf.ecore.resource" />
         	<package uri="common.xmi" />         	
         	<package uri="application.xmi" />         	         	
         	<package uri="client.xmi" />         	         	
         	<package uri="modulemap.xmi" />           	
         	<package uri="ejb.xmi" />                 	
         	<package uri="jca.xmi" />                 	
         	<package uri="webapplication.xmi" />                 	
         	<package uri="jsp.xmi" />    
          <package uri="commonext.xmi" />
          <package uri="localtran.xmi" />          
          <package uri="ejbext.xmi" />                    
          <package uri="webappext.xmi" />                    
          <package uri="applicationext.xmi" />            
          <package uri="applicationclientext.xmi" />                  
          <package uri="ejbbnd.xmi" />                  
          <package uri="webappbnd.xmi" />                  
          <package uri="commonbnd.xmi" />  
          <package uri="j2cbnd.xmi" />                  
          <package uri="clientbnd.xmi" />                  
          <package uri="applicationbnd.xmi" />                  
          <package uri="ejbrdbmapping.xmi" />        
         	             	
         </emfEnablement>
      </navigatorContent>
   </extension>
   
   <extension
         point="org.eclipse.wst.common.navigator.views.actionProvider">
      <actionProvider
            class="org.eclipse.jst.common.navigator.internal.actions.OpenActionsExtension" >
         <enablement>
         	<or>
	         	<objectClass
	         		adaptable="true"
	                  name="org.eclipse.emf.ecore.EObject" />
	         	<objectClass
	         		adaptable="true"
	                  name="org.eclipse.emf.edit.provider.ItemProvider" />	    
            </or>
         </enablement>
      </actionProvider>
   </extension> 
   
      <extension
         point="org.eclipse.wst.common.navigator.views.actionProvider">
      <actionProvider 
            class="org.eclipse.wst.common.navigator.internal.actions.PortingActionExtension">
			<enablement>
				<or> 
				   <objectClass
						adaptable="true"
						name="org.eclipse.emf.ecore.EObject" />		
					<objectClass
	         			adaptable="true"
	                  	name="org.eclipse.emf.edit.provider.ItemProvider" />	 
	                <objectClass
	         			adaptable="true"
	                  	name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet" />	 																				
				</or>
			</enablement>
      </actionProvider>
   </extension>
   <!-- =========================================================================== -->
<!-- Component Working Set                                                            -->
<!-- =========================================================================== -->
   <extension
         point="org.eclipse.ui.workingSets">
      <workingSet
            name="Component"
             updaterClass="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSetUpdater"
             icon="icons/J2EEPerspective.gif"
             id="org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage">
      </workingSet>
   </extension>
   
      <extension
            point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
             <componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.ejb"
                  icon = "icons/ejbgroup_obj.gif"
                  label = "%EJB_Projects">
             </componentWorkingSet>
      </extension>
      <extension 
       		point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
      		<componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.web"
                  icon = "icons/webgroup_obj.gif"
                  label = "%Web_Projects">
             </componentWorkingSet>
      </extension>
      <extension 
       		point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
      		  <componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.ear"
                  icon = "icons/eargroup_obj.gif"
                  label = "%Enterprise_Applications">
             </componentWorkingSet>
      </extension>
      
      <extension 
       		point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
      		  <componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.appclient"
                  icon = "icons/appclientgroup_obj.gif"
                  label = "%Application_Client_Projects">
             </componentWorkingSet>
      </extension>
      
      <extension 
       		point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
      		  <componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.connector"
                  icon = "icons/connectorgroup_obj.gif"
                  label = "%Connector_Projects">
             </componentWorkingSet>
      </extension>
      
      <extension
            point="org.eclipse.jst.common.navigator.java.workingSetProviders">
            <workingSetProviders
            	class="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSetProvider">
            </workingSetProviders>
      </extension>
       <extension
       	point="org.eclipse.ui.elementFactories">
	    <factory
	          class="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSetFactory"
	          id="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSetFactory"/>
	 </extension>  
	 
<!-- =========================================================================== -->
<!-- Adding the New to the Component Working Sets                                -->
<!-- =========================================================================== -->
 
	 <extension
         point="org.eclipse.wst.common.navigator.views.actionProvider">
      <actionProvider
            class="org.eclipse.jst.common.navigator.internal.actions.OpenActionsExtension" >
         <enablement>
         	<or>
	         	<objectClass
	         		adaptable="true"
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet" />
            </or>
         </enablement>
      </actionProvider>
   </extension> 
   
   
   <extension
         point="org.eclipse.wst.common.navigator.workbench.commonWizard">
          <!-- EAR New -->
          <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.ui.project.facet.EarProjectWizard">
         <enablement>
         <or> 
             <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.ear">
                </objectState>
               
             </and>      
            </or>
         </enablement>
       </commonWizard>
        <!-- AppClient New -->
        <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.ui.project.facet.appclient.AppClientProjectWizard">
         <enablement>
           <or> 
             <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.appclient">
                </objectState>
               
             </and>      
            </or>
         </enablement>
       </commonWizard>
       <commonWizard
            type="new"
            wizardId="org.eclipse.jst.servlet.ui.project.facet.WebProjectWizard">
         <enablement>
           <or>
               <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.web">
                </objectState>
             </and>      
            </or>
         </enablement>
       </commonWizard>
       <!-- Connector New -->
        <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorProjectWizard">
         <enablement>
          <or>
               <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.connector">
                </objectState>
             </and>      
            </or>
         </enablement>
       </commonWizard>
       <!-- EJB New -->
        <commonWizard
            type="new"
            wizardId="org.eclipse.jst.ejb.ui.project.facet.EjbProjectWizard">
         <enablement>
          <or>
               <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.ejb">
                </objectState>
             </and>      
            </or>
         </enablement>
       </commonWizard>
       
   </extension>
     
     
     
</plugin>


