<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
      Copyright (c) 2010 Eteration A.S. 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:
         Naci Dai and Murat Yener, Eteration A.S. - Initial API and implementation
 -->

<plugin>
   <extension point="org.eclipse.wst.server.ui.serverImages">

      <image
         id="org.eclipse.libra.framework.equinox.30x"
         icon="icons/obj16/equinox.gif"
         typeIds="org.eclipse.libra.framework.equinox.serverType.30x"/>

      <image
         id="org.eclipse.libra.framework.equinox.runtimeType.30x"
         icon="icons/obj16/equinox.gif"
         typeIds="org.eclipse.libra.framework.equinox.runtimeType.30x"/>
   </extension>
   
   <extension point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
         id="org.eclipse.libra.framework.equinox.ui.propertyTester"
         namespace="org.eclipse.libra.framework.equinox.ui"
         properties="hasConfiguration"
         type="java.lang.Object"
         class="org.eclipse.libra.framework.equinox.ui.internal.ConfigurationPropertyTester">
      </propertyTester>
   </extension>

   <extension point="org.eclipse.wst.server.ui.editorPages">
      <page
         id="org.eclipse.libra.framework.equinox.ui.editor.osgimodule"
         order="20"
         name="%configurationEditorOSGiModulesPage"
         typeIds="org.eclipse.libra.framework.equinox.serverType.*"
         class="org.eclipse.libra.framework.ui.internal.editor.ConfigurationOSGiModuleEditorPart">
         <enablement>
           <test property="org.eclipse.libra.framework.equinox.ui.hasConfiguration" value="true"/>
         </enablement>
      </page>
   </extension>

   <extension point="org.eclipse.wst.server.ui.editorPages">
      <page
         id="org.eclipse.libra.framework.equinox.ui.editor.osgimodule"
         order="22"
         name="Target Platform Profile"
         typeIds="org.eclipse.libra.framework.equinox.serverType.*"
         class="org.eclipse.libra.framework.ui.internal.editor.TargetDefinitionEditorPart">
         <enablement>
           <test property="org.eclipse.libra.framework.equinox.ui.hasConfiguration" value="true"/>
         </enablement>
      </page>
   </extension>

   <extension point="org.eclipse.wst.server.ui.editorPageSections">
      <section
         id="org.eclipse.libra.framework.equinox.editor.instance"
         order="0"
         insertionId="org.eclipse.wst.server.editor.overview.left"
         typeIds="org.eclipse.libra.framework.equinox.serverType.*"
         class="org.eclipse.libra.framework.ui.internal.editor.FrameworkInstanceLocationEditorSection"/>

   </extension>
   
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
      <section
         id="org.eclipse.libra.framework.equinox.editor.instance"
         order="0"
         insertionId="org.eclipse.wst.server.editor.overview.right"
         typeIds="org.eclipse.libra.framework.equinox.serverType.*"
         class="org.eclipse.libra.framework.equinox.ui.internal.JavaProfileEditorSection"/>

   </extension>
   
   <extension point="org.eclipse.wst.server.ui.wizardFragments">
      <fragment
         id="org.eclipse.libra.framework.equinox.30x"
         typeIds="org.eclipse.libra.framework.equinox.runtimeType.30x"
         class="org.eclipse.libra.framework.ui.OSGIFrameworkWizardFragment"/>
   </extension>

  <extension point="org.eclipse.debug.ui.launchConfigurationTypeImages">
    <launchConfigurationTypeImage
      id="org.eclipse.libra.framework.equinox.30x.launchConfig.image"
      configTypeID="org.eclipse.libra.framework.equinox.launchConfigurationType"
      icon="icons/obj16/equinox.gif">
    </launchConfigurationTypeImage>
  </extension>

  <extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
    <launchConfigurationTabGroup
      id="org.eclipse.libra.framework.equinox.ui.launchConfigurationTabGroup"
      type="org.eclipse.libra.framework.equinox.launchConfigurationType"
      class="org.eclipse.libra.framework.ui.GenericOSGILaunchConfigurationTabGroup">
    </launchConfigurationTabGroup>
  </extension>

  <extension point="org.eclipse.wst.common.project.facet.ui.images">
    <image runtime-component-type="org.eclipse.libra.framework.equinox.runtimeType"
      path="icons/obj16/equinox.gif"/>
  </extension>



  <extension point="org.eclipse.ui.popupMenus">
    <objectContribution
      adaptable="true"
      id="org.eclipse.libra.framework.equinox.ui.serveractions"
      objectClass="org.eclipse.wst.server.core.IServer">
      <visibility>
          <objectState name="serverType" value="org.eclipse.libra.framework.equinox.serverType.*"/>
      </visibility>
      <action 
        class="org.eclipse.libra.framework.ui.internal.actions.CleanWorkDirAction"
        enablesFor="1"
        id="org.eclipse.libra.framework.equinox.ui.cleanserverworkdir"
        label="%cleanWorkDir">
      </action>
    </objectContribution>
    <objectContribution
      adaptable="true"
      id="org.eclipse.libra.framework.equinox.ui.serveractions"
      objectClass="org.eclipse.wst.server.ui.internal.view.servers.ModuleServer">
      <visibility>
        <and>
          <objectState name="serverType" value="org.eclipse.libra.framework.equinox.serverType.*"/>
          <objectState name="moduleType" value="osgi.bundle"/>
        </and>
      </visibility>
      <action
        class="org.eclipse.libra.framework.ui.internal.actions.CleanWorkDirAction"
        enablesFor="1"
        id="org.eclipse.libra.framework.equinox.ui.cleanmoduleworkdir"
        label="%cleanModuleWorkDir">
      </action>
    </objectContribution>
  </extension>

  <extension point="org.eclipse.wst.server.core.publishers">
     <publisher
        id="org.eclipse.libra.framework.equinox.ui.context"
        typeIds="org.eclipse.libra.framework.equinox.serverType.*"
        name="%publisherContextFixLabel"
        description="%publisherContextFixDescription"
        order=""
        class="org.eclipse.libra.framework.ui.internal.ModulePublisherDelegate"/>
  </extension>
</plugin>
