<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>

<!--
     Copyright (c) 2009-2010 Thales Corporate Services S.A.S.
     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:
         Thales Corporate Services S.A.S - initial API and implementation
 -->

<plugin>

  <!-- ================================================================================= -->
  <!-- Types Model                                                                       -->
  <!-- ================================================================================= -->

  <extension 
    point="org.eclipse.emf.edit.itemProviderAdapterFactories"
  >
    <factory
      uri="http://www.eclipse.org/egf/1.0.0/types"
      class="org.eclipse.egf.model.types.provider.TypesItemProviderAdapterFactory"
      supportedTypes=
        "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
         org.eclipse.emf.edit.provider.IStructuredItemContentProvider
         org.eclipse.emf.edit.provider.ITreeItemContentProvider
         org.eclipse.emf.edit.provider.IItemLabelProvider
         org.eclipse.emf.edit.provider.IItemPropertySource
         org.eclipse.emf.edit.provider.ITableItemLabelProvider
         org.eclipse.emf.edit.provider.ITableItemColorProvider
         org.eclipse.emf.edit.provider.ITableItemFontProvider
         org.eclipse.emf.edit.provider.IItemColorProvider
         org.eclipse.emf.edit.provider.IItemFontProvider"
      />
  </extension>
    
  <!-- ================================================================================= -->
  <!-- Fcore Model                                                                       -->
  <!-- ================================================================================= -->
  
  <extension 
    point="org.eclipse.emf.edit.itemProviderAdapterFactories"
  >
    <factory
      uri="http://www.eclipse.org/egf/1.0.0/fcore"
      class="org.eclipse.egf.model.fcore.provider.FcoreItemProviderAdapterFactory"
      supportedTypes=
        "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
         org.eclipse.emf.edit.provider.IStructuredItemContentProvider
         org.eclipse.emf.edit.provider.ITreeItemContentProvider
         org.eclipse.emf.edit.provider.IItemLabelProvider
         org.eclipse.emf.edit.provider.IItemPropertySource
         org.eclipse.emf.edit.provider.ITableItemLabelProvider
         org.eclipse.emf.edit.provider.ITableItemColorProvider
         org.eclipse.emf.edit.provider.ITableItemFontProvider
         org.eclipse.emf.edit.provider.IItemColorProvider
         org.eclipse.emf.edit.provider.IItemFontProvider"
      />
  </extension>
  
  <extension
    point="org.eclipse.emf.edit.itemProviderAdapterFactories"
  >
    <factory
      uri="org.eclipse.egf.model.fcore.util"
      class="org.eclipse.egf.model.fcore.provider.FcoreResourceItemProviderAdapterFactory"
      supportedTypes=
        "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
         org.eclipse.emf.edit.provider.IStructuredItemContentProvider
         org.eclipse.emf.edit.provider.ITreeItemContentProvider
         org.eclipse.emf.edit.provider.IItemLabelProvider
         org.eclipse.emf.edit.provider.IItemPropertySource" 
    />
  </extension>      
  
  <!-- ================================================================================= -->
  <!-- Domain Model                                                                      -->
  <!-- ================================================================================= -->  
  
  <extension 
    point="org.eclipse.emf.edit.itemProviderAdapterFactories"
  >
    <factory
      uri="http://www.eclipse.org/egf/1.0.0/domain"
      class="org.eclipse.egf.model.domain.provider.DomainItemProviderAdapterFactory"
      supportedTypes=
        "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
         org.eclipse.emf.edit.provider.IStructuredItemContentProvider
         org.eclipse.emf.edit.provider.ITreeItemContentProvider
         org.eclipse.emf.edit.provider.IItemLabelProvider
         org.eclipse.emf.edit.provider.IItemPropertySource
         org.eclipse.emf.edit.provider.ITableItemLabelProvider
         org.eclipse.emf.edit.provider.ITableItemColorProvider
         org.eclipse.emf.edit.provider.ITableItemFontProvider
         org.eclipse.emf.edit.provider.IItemColorProvider
         org.eclipse.emf.edit.provider.IItemFontProvider"
    />
  </extension> 
   
  <extension 
    point="org.eclipse.emf.edit.childCreationExtenders"
  >
    <extender
      uri="http://www.eclipse.org/egf/1.0.0/fcore"
      class="org.eclipse.egf.model.domain.provider.DomainItemProviderAdapterFactory$FcoreChildCreationExtender"
    />
  </extension>   
   
  <!-- ================================================================================= -->
  <!-- Mapping Model                                                                     -->
  <!-- ================================================================================= -->
    
  <extension 
    point="org.eclipse.emf.edit.itemProviderAdapterFactories"
  >
    <factory
      uri="http://www.eclipse.org/egf/1.0.0/mapping"
      class="org.eclipse.egf.model.mapping.provider.MappingItemProviderAdapterFactory"
      supportedTypes=
        "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
         org.eclipse.emf.edit.provider.IStructuredItemContentProvider
         org.eclipse.emf.edit.provider.ITreeItemContentProvider
         org.eclipse.emf.edit.provider.IItemLabelProvider
         org.eclipse.emf.edit.provider.IItemPropertySource
         org.eclipse.emf.edit.provider.ITableItemLabelProvider
         org.eclipse.emf.edit.provider.ITableItemColorProvider
         org.eclipse.emf.edit.provider.ITableItemFontProvider
         org.eclipse.emf.edit.provider.IItemColorProvider
         org.eclipse.emf.edit.provider.IItemFontProvider"
    />
  </extension>
  
  <extension 
    point="org.eclipse.emf.edit.childCreationExtenders"
  >
    <extender
      uri="http://www.eclipse.org/egf/1.0.0/fcore"
      class="org.eclipse.egf.model.mapping.provider.MappingItemProviderAdapterFactory$FcoreChildCreationExtender"
    />
  </extension>  
  
  <!-- ================================================================================= -->
  <!-- Pattern Model                                                                     -->
  <!-- ================================================================================= --> 
  
  <extension 
    point="org.eclipse.emf.edit.itemProviderAdapterFactories"
  >
    <factory
      uri="http://www.eclipse.org/egf/1.0.0/pattern"
      class="org.eclipse.egf.model.pattern.provider.PatternItemProviderAdapterFactory"
      supportedTypes=
        "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
         org.eclipse.emf.edit.provider.IStructuredItemContentProvider
         org.eclipse.emf.edit.provider.ITreeItemContentProvider
         org.eclipse.emf.edit.provider.IItemLabelProvider
         org.eclipse.emf.edit.provider.IItemPropertySource
         org.eclipse.emf.edit.provider.ITableItemLabelProvider
         org.eclipse.emf.edit.provider.ITableItemColorProvider
         org.eclipse.emf.edit.provider.ITableItemFontProvider
         org.eclipse.emf.edit.provider.IItemColorProvider
         org.eclipse.emf.edit.provider.IItemFontProvider"
      />
  </extension>   
  
  <extension 
    point="org.eclipse.emf.edit.childCreationExtenders"
  >
    <extender
      uri="http://www.eclipse.org/egf/1.0.0/fcore"
      class="org.eclipse.egf.model.pattern.provider.PatternItemProviderAdapterFactory$FcoreChildCreationExtender"
    />
  </extension>   

</plugin>
