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

    
<!-- ====================================================== -->
<!--                                                        -->
<!-- Purpose: Extension for the J2EE ACtion Sets            -->
<!-- Extension point: org.eclipse.ui.actionSets             -->
<!-- ====================================================== -->
   <extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            label="%connectors.actionSet"
            description="%connectors.actionSet.desc"
            visible="false"
            id="org.eclipse.jst.j2ee.J2eeMainActionSet4">
         <action
               label="%new.jca.module.description_ui_"
               icon="icons/full/ctool16/newconnectionprj_wiz.gif"
               tooltip="%new.jca.module.description_ui_"
               class="org.eclipse.jst.j2ee.jca.ui.internal.actions.NewConnectorComponentAction"
               toolbarPath="J2EEMain4"
               id="org.eclipse.jst.j2ee.jca.ui.internal.actions.NewConnectorComponent">
         </action>
      </actionSet>
	</extension>
   <!-- Connector Module Wizard -->
    <extension
         id="J2EEUIProjectWizards"
         point="org.eclipse.ui.newWizards">
      <category
            name="%web.category_ui_"
            id="org.eclipse.jst.servlet.ui">
      </category>
      <wizard
            name="%connector_module_ui_"
            icon="icons/full/ctool16/newconnectionprj_wiz.gif"
            category="org.eclipse.jst.j2ee.internal"
            class="org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorComponentCreationWizard"
            project="true"
            finalPerspective="org.eclipse.jst.j2ee.J2EEPerspective"
            id="org.eclipse.jst.j2ee.jca.ui.ConnectorComponentCreationWizard">
         <description>
            %new.connector.module.description_ui_
         </description>
         <selection
               class="org.eclipse.core.resources.IResource">
         </selection>
      </wizard>
    </extension>
<!-- JCA Import Wizard --> 
    <extension
         point="org.eclipse.ui.importWizards">
      <wizard
            name="%connector.jar.file_ui_"
            icon="icons/full/ctool16/import_rar.gif"
            class="org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorComponentImportWizard"
            id="org.eclipse.jst.j2ee.jca.ui.ConnectorModuleImportWizardNew">
         <description>
            %connector.import.description_ui_
         </description>
         <selection
               class="org.eclipse.core.resources.IResource">
         </selection>
       </wizard>
     </extension> -->

<!-- JCA Export Wizard --> 
<!--    <extension
         point="org.eclipse.ui.exportWizards">
     <wizard
            name="%connector.jar.file_ui_"
            icon="icons/full/ctool16/export_rar.gif"
            class="org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorComponentExportWizard"
            id="org.eclipse.jst.j2ee.jca.ui.ConnectorModuleExportWizard">
         <description>
            %connector.export.description_ui_
         </description>
         <selection
               class="org.eclipse.core.resources.IResource">
         </selection>
       </wizard>
     </extension> -->

<!-- Navigator Object Contributions --> 
<!-- Connector Group Contributions 
   <extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            objectClass="org.eclipse.wst.common.navigator.internal.groups.NavigatorGroup"
            id="org.eclipse.jst.j2ee.internal.ui.navigator.rarNewProjectActions">
         <action
               label="%jca.module_ui_"
               icon="icons/full/ctool16/newconnectionprj_wiz.gif"
               class="org.eclipse.jst.j2ee.jca.ui.internal.actions.NewConnectorProjectAction"
               menubarPath="org.eclipse.wst.common.frameworks.internal.navigator.new.menu/additions"
               enablesFor="1"
               id="org.eclipse.jst.j2ee.jca.ui.internal.actions.NewConnectorProjectAction">
         </action>
         <visibility>
            <objectState
                  name="projectNature"
                  value="org.eclipse.jst.j2ee.jca.ConnectorNature">
            </objectState>
         </visibility>
      </objectContribution>
      
      <objectContribution
            objectClass="org.eclipse.wst.common.navigator.internal.groups.NavigatorGroup"
            id="org.eclipse.jst.j2ee.internal.ui.navigator.rarProjectActions">
         <action
               label="%connector.jar.file_ui_"
               icon="icons/full/ctool16/import_rar.gif"
               class="org.eclipse.jst.j2ee.jca.ui.internal.actions.ImportRARAction"
               menubarPath="org.eclipse.wst.common.frameworks.internal.navigator.import.menu/additions"
               enablesFor="1"
               id="org.eclipse.jst.j2ee.jca.ui.internal.actions.ImportRARAction">
         </action>
         <action
               label="%connector.jar.file_ui_"
               icon="icons/full/ctool16/export_rar.gif"
               class="org.eclipse.jst.j2ee.jca.ui.internal.actions.ExportRARAction"
               menubarPath="org.eclipse.wst.common.frameworks.internal.navigator.export.menu/additions"
               enablesFor="1"
               id="org.eclipse.jst.j2ee.jca.ui.internal.actions.ExportRARAction">
         </action>
         <visibility>
            <objectState
                  name="projectNature"
                  value="org.eclipse.jst.j2ee.jca.ConnectorNature">
            </objectState>
         </visibility>
      </objectContribution>
   </extension>
   -->
    <extension
         point="org.eclipse.wst.common.navigator.workbench.commonWizard">
      <!-- Connector New -->
        <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.jca.ui.ConnectorComponentCreationWizard">
         <enablement>
         <or>
               <objectClass
	                  name="org.eclipse.core.resources.IWorkspaceRoot">
	           </objectClass>
                <and>
                   <objectClass
	                     name="org.eclipse.core.resources.IProject">
	               </objectClass>
	               <or>
	                  <objectState
	                        name="projectNature"
	                        value="org.eclipse.wst.common.modulecore.ModuleCoreNature">
	                  </objectState>
	               </or> 
                </and> 
                <objectClass
                 name="org.eclipse.jst.j2ee.internal.application.impl.ApplicationImpl">
           	   </objectClass>
           	    <objectClass
                 name="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider">
           	   </objectClass>
           	   <objectClass
                 name="org.eclipse.jst.j2ee.internal.application.impl.ModuleImpl">
           	   </objectClass>
            </or>
         </enablement>
       </commonWizard>
        <!-- Connector import -->
   <!--   <commonWizard
            type="import"
            wizardId="org.eclipse.jst.j2ee.jca.ui.ConnectorModuleImportWizard">
         <enablement>
          <or>
               <objectClass
	                  name="org.eclipse.core.resources.IWorkspaceRoot">
	           </objectClass>
               <and>
            	   <objectClass
                     name="org.eclipse.wst.common.navigator.internal.groups.NavigatorGroup">
               	   </objectClass>
               	   <objectState
                        name="projectNature"
                        value="org.eclipse.jst.j2ee.jca.ConnectorNature">
                  </objectState>
                </and>
                <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.jca.ConnectorNature">
	                  </objectState>
	               </or> 
                </and> 
                  <objectClass
	                     name="org.eclipse.jst.j2ee.internal.jca.impl.ConnectorImpl">
	               </objectClass>
	                <objectClass
                 name="org.eclipse.jst.j2ee.internal.application.impl.ApplicationImpl">
           	   </objectClass>
           	    <objectClass
                 name="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider">
           	   </objectClass>
           	    <objectClass
                 name="org.eclipse.jst.j2ee.internal.application.impl.ModuleImpl">
           	   </objectClass>
           	     <objectClass
                 name="org.eclipse.jst.j2ee.internal.jca.impl.ResourceAdapterImpl">
           	   </objectClass>
           	   
           	                       
         </or>
         </enablement>
       </commonWizard> -->
         <!-- Connector Export -->
     <!--  <commonWizard
            type="export"
            wizardId="org.eclipse.jst.j2ee.jca.ui.ConnectorModuleExportWizard">
         <enablement>
         <or>
            <and>
               <or>
                  <objectClass
                     name="org.eclipse.wst.common.navigator.internal.groups.NavigatorGroup">
               	   </objectClass>
	               <objectClass
	                     name="org.eclipse.core.resources.IProject">
	               </objectClass>
               </or>
               <or>
                  <objectState
                        name="sNature"
                        value="org.eclipse.jst.j2ee.jca.ConnectorNature">
                  </objectState>
               </or>
            </and>     
             <objectClass
	                     name="org.eclipse.jst.j2ee.internal.jca.impl.ConnectorImpl">
	         </objectClass>     
	         <objectClass
                 name="org.eclipse.jst.j2ee.internal.jca.impl.ResourceAdapterImpl">
           	   </objectClass>  
            </or>
         </enablement>
       </commonWizard> -->
        <!-- Import Classes Wizard -->
       <!-- <commonWizard
            type="import"
            wizardId="org.eclipse.jst.j2ee.internal.wizard.ClassesImportWizard">
         <enablement>
          <or>
             <objectClass
	                     name="org.eclipse.jst.j2ee.internal.jca.impl.ConnectorImpl">
	         </objectClass>    
	              <objectClass
                 name="org.eclipse.jst.j2ee.internal.jca.impl.ResourceAdapterImpl">
           	   </objectClass>
           </or> 
         </enablement>
       </commonWizard> -->
    </extension>
</plugin>
