<?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.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.pror.presentation.headline.HeadlinePackage"
            genModel="model/Headline.genmodel"/>
   </extension>
 <extension
         point="org.eclipse.rmf.pror.reqif10.editor.presentation">
      <presentation
            name="Headline"
            service="org.eclipse.rmf.pror.presentation.headline.ui.HeadlinePresentationService">
      </presentation>
   </extension>

</plugin>
