<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?><!--
    Copyright (c) 2010 Mia-Software.
    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:
       Gabriel Barbier (Mia-Software) - initial API and implementation
 -->

<plugin>
   <extension-point id="org.eclipse.gmt.modisco.discoverers" name="%extension-point.name" schema="schema/discoverers.exsd"/>
   <extension-point id="org.eclipse.gmt.modisco.cellcontenteditors" name="%extension-point.name.0" schema="schema/cellcontenteditors.exsd"/>

<!--
   <extension
         id="org.eclipse.gmt.modisco.discoverersmanager.menu"
         name="%extension.name"
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.ui.popup.any">
         <dynamic
               class="org.eclipse.gmt.modisco.infra.discoverymanager.ui.actions.ContributionItemForMoDiscoMenu"
               id="org.eclipse.gmt.modisco.infra.discoverymanager.dynamic">
         </dynamic>
      </menuContribution>
   </extension>
   <extension
         point="org.eclipse.debug.core.launchConfigurationTypes">
      <launchConfigurationType
            delegate="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.DiscovererLaunchConfigurationDelegate"
            id="org.eclipse.gmt.modisco.infra.discoverymanager.launchConfigurationType"
            modes="run, debug"
            name="%launchConfigurationType.name">
      </launchConfigurationType>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            class="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.DiscoverersTabGroup"
            id="org.eclipse.gmt.modisco.infra.discoverymanager.launchConfigurationTabGroup"
            type="org.eclipse.gmt.modisco.infra.discoverymanager.launchConfigurationType">
      </launchConfigurationTabGroup>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
      <launchConfigurationTypeImage
            configTypeID="org.eclipse.gmt.modisco.infra.discoverymanager.launchConfigurationType"
            icon="logoMoDiscoMini.gif"
            id="org.eclipse.gmt.modisco.infra.discoverymanager.launchConfigurationTypeImage">
      </launchConfigurationTypeImage>
   </extension>
   <extension
         point="org.eclipse.gmt.modisco.cellcontenteditors">
      <editor
            editorImplementation="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.utils.StringCellEditor"
            name="String"
            targetType="java.lang.String">
      </editor>
      <editor
            editorImplementation="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.utils.BooleanCellEditor"
            name="Boolean"
            targetType="java.lang.Boolean">
      </editor>
      <editor
            editorImplementation="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.utils.IntegerCellEditor"
            name="Integer"
            targetType="java.lang.Integer">
      </editor>
      <editor
            editorImplementation="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.utils.ListCellEditor"
            name="List&lt;String&gt;"
            targetType="java.util.List">
      </editor>
      <editor
            editorImplementation="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.utils.MapCellEditor"
            name="Map&lt;String, String&gt;"
            targetType="java.util.Map">
      </editor>
      <editor
            editorImplementation="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.utils.SetCellEditor"
            name="Set&lt;String&gt;"
            targetType="java.util.Set">
      </editor>
      <editor
            editorImplementation="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.utils.IFileCellEditor"
            name="IFile"
            targetType="org.eclipse.core.resources.IFile">
      </editor>
      <editor
            editorImplementation="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.utils.IContainerCellEditor"
            name="IContainer"
            targetType="org.eclipse.core.resources.IContainer">
      </editor>
      <editor
            editorImplementation="org.eclipse.gmt.modisco.infra.discoverymanager.ui.launch.utils.UriCellEditor"
            name="URI"
            targetType="org.eclipse.emf.common.util.URI">
      </editor>
   </extension>

-->

</plugin>
