<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.gmf.runtime.common.ui.services.dnd">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.gmf.runtime.common.ui.services.dnd" id="dragDropListenerProviders" name="Drag and Drop Listeners Extension Points"/>
      </appInfo>
      <documentation>
         This extension point is used to register drag source and drop target listeners
    against element types within view parts.This extension point facilitates
    the configuration of providers for the drag/drop listener service (&lt;tt&gt;org.eclipse.gmf.runtime.common.ui.services.dnd.core.DragDropListenerService&lt;/tt&gt;).
    The providers register listeners for drag and drop operations on specific element
    types within view parts.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="DragDropListenerProvider"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  The identifier of the extension point, i.e. &lt;tt&gt;org.eclipse.gmf.runtime.common.ui.services.dnd.dragDropListenerProviders&lt;/tt&gt;
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  The identifier of the extension, e.g. dragDropListenerProviders.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  The name of the extension, e.g. %ext.dragDropListenerProviders.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="DragDropListenerProvider">
      <complexType>
         <sequence>
            <element ref="Priority"/>
            <element ref="ViewId" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The identifier of the provider, e.g. my_dragDropListenerProvider.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The provider class. Providers implement service functionality (operations).
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.gmf.runtime.common.ui.services.dnd.core.AbstractDragDropListenerProvider"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="Priority">
      <complexType>
         <attribute name="name" use="required">
            <annotation>
               <documentation>
                  The name of the provider priority, i.e. Lowest, Low, Medium, High, or Highest.
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="Lowest">
                  </enumeration>
                  <enumeration value="Low">
                  </enumeration>
                  <enumeration value="Medium">
                  </enumeration>
                  <enumeration value="High">
                  </enumeration>
                  <enumeration value="Highest">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
      </complexType>
   </element>

   <element name="ViewId">
      <complexType>
         <sequence>
            <element ref="ElementType" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The target view part id, e.g. &lt;tt&gt;org.eclipse.test.project.ui.views.MyView&lt;/tt&gt;
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="ElementType">
      <complexType>
         <sequence>
            <element ref="OperationType" minOccurs="1" maxOccurs="2"/>
         </sequence>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The element type within the view part, e.g. &lt;tt&gt;org.eclipse.test.project.ui.internal.providers.MyElement&lt;/tt&gt;
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="OperationType">
      <complexType>
         <sequence>
            <element ref="TransferId" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="operation" use="required">
            <annotation>
               <documentation>
                  The operation type being registered for within the view part, e.g. &lt;tt&gt;drag or drop&lt;/tt&gt;
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="drag">
                  </enumeration>
                  <enumeration value="drop">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
      </complexType>
   </element>

   <element name="TransferId">
      <complexType>
         <attribute name="transferId" type="string" use="required">
            <annotation>
               <documentation>
                  The id for the transfer agent
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of the drag and drop listener provider extension:
&lt;p&gt;
&lt;pre&gt;
&lt;extension 
      id=&quot;dragDropListenerProviders&quot; 
      name=&quot;%ext.dragDropListenerProviders&quot; 
      point=&quot;org.eclipse.gmf.runtime.common.ui.services.dnd.dragDropListenerProviders&quot;&gt; 
      &lt;DragDropListenerProvider 
         class=&quot;org.eclipse.test.project.ui.internal.providers.dnd.DragDropListenerProvider&quot; 
         id=&quot;myExplorerDragDropListenerProvider&quot;&gt; 
         &lt;Priority 
            name=&quot;Lowest&quot;&gt; 
         &lt;/Priority&gt; 
         &lt;ViewId 
            id=&quot;org.eclipse.test.project.ui.views.MyExplorer&quot;&gt; 
           &lt;ElementType 
              class=&quot;org.eclipse.test.project.ui.internal.providers.myexplorer.MyElement&quot;&gt; 
             &lt;OperationType 
                operation=&quot;drag&quot;&gt; 
               &lt;TransferId 
                  transferId=&quot;selection&quot;&gt; 
               &lt;/TransferId&gt; 
               &lt;TransferId 
                  transferId=&quot;customData&quot;&gt; 
               &lt;/TransferId&gt; 
               &lt;TransferId 
                  transferId=&quot;file&quot;&gt; 
               &lt;/TransferId&gt; 
               &lt;TransferId 
                  transferId=&quot;text&quot;&gt; 
               &lt;/TransferId&gt; 
               &lt;TransferId 
                  transferId=&quot;richText&quot;&gt; 
               &lt;/TransferId&gt; 
             &lt;/OperationType&gt; 
             &lt;OperationType 
                operation=&quot;drop&quot;&gt; 
               &lt;TransferId 
                  transferId=&quot;selection&quot;&gt; 
               &lt;/TransferId&gt; 
               &lt;TransferId 
                  transferId=&quot;customData&quot;&gt; 
               &lt;/TransferId&gt; 
             &lt;/OperationType&gt; 
           &lt;/ElementType&gt; 
         &lt;/ViewId&gt; 
      &lt;/DragDropListenerProvider&gt; 
   &lt;/extension&gt; 
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The value of the &lt;tt&gt;class&lt;/tt&gt; attribute must represent a subclass of
         &lt;tt&gt;org.eclipse.gmf.runtime.common.core.service.AbstractProvider&lt;/tt&gt; that implements
         &lt;tt&gt;org.eclipse.gmf.runtime.common.ui.services.dnd.core.IDragDropListenerProvider&lt;/tt&gt;, e.g. a subclass
         of &lt;tt&gt;org.eclipse.gmf.runtime.common.ui.services.dnd.core.AbstractDragDropListenerProvider&lt;/tt&gt;.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
        Copyright (c) 2003, 2005  IBM Corporation and others.&lt;br&gt;
	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 
	&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;

      </documentation>
   </annotation>

</schema>
