<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>

<!--
 <copyright>
Copyright (c) 2011 Formal Mind GmbH and University of Dusseldorf.
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:
    Michael Jastram - initial API and implementation
 </copyright>

 $Id$
-->

<plugin>

   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
      <factory
            uri="http://pror.org/presentation/headline"
            class="org.eclipse.rmf.reqif10.pror.presentation.headline.provider.HeadlineItemProviderAdapterFactory"
            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>

   <extension point="org.eclipse.emf.ecore.generated_package">
      <package
            uri="http://pror.org/presentation/headline"
            class="org.eclipse.rmf.reqif10.pror.presentation.headline.HeadlinePackage"
            genModel="model/Headline.genmodel"/>
   </extension>
 <extension
         point="org.eclipse.rmf.reqif10.pror.editor.presentation">
      <presentation
            name="Headline"
            service="org.eclipse.rmf.reqif10.pror.presentation.headline.ui.HeadlinePresentationService">
      </presentation>
   </extension>

</plugin>
