#
Drag and Drop Listeners Extension Points

###### Identifier:

org.eclipse.gmf.runtime.common.ui.services.dnd.dragDropListenerProviders

###### Description:

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 (`org.eclipse.gmf.runtime.common.ui.services.dnd.core.DragDropListenerService`). The providers register listeners for drag and drop operations on specific element types within view parts.

###### Configuration Markup:

<!ELEMENT extension (DragDropListenerProvider)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - The identifier of the extension point, i.e. `org.eclipse.gmf.runtime.common.ui.services.dnd.dragDropListenerProviders`
- id - The identifier of the extension, e.g. dragDropListenerProviders.
- name - The name of the extension, e.g. %ext.dragDropListenerProviders.

<!ELEMENT DragDropListenerProvider (Priority , ViewId+)>

<!ATTLIST DragDropListenerProvider

id CDATA #REQUIRED

class CDATA #REQUIRED>

- id - The identifier of the provider, e.g. my_dragDropListenerProvider.
- class - The provider class. Providers implement service functionality (operations).

<!ELEMENT Priority EMPTY>

<!ATTLIST Priority

name (Lowest|Low|Medium|High|Highest) >

- name - The name of the provider priority, i.e. Lowest, Low, Medium, High, or Highest.

<!ELEMENT ViewId (ElementType+)>

<!ATTLIST ViewId

id CDATA #REQUIRED>

- id - The target view part id, e.g. `org.eclipse.test.project.ui.views.MyView`

<!ELEMENT ElementType (OperationType+)>

<!ATTLIST ElementType

class CDATA #REQUIRED>

- class - The element type within the view part, e.g. `org.eclipse.test.project.ui.internal.providers.MyElement`

<!ELEMENT OperationType (TransferId+)>

<!ATTLIST OperationType

operation (drag|drop) >

- operation - The operation type being registered for within the view part, e.g. `drag or drop`

<!ELEMENT TransferId EMPTY>

<!ATTLIST TransferId

transferId CDATA #REQUIRED>

- transferId - The id for the transfer agent

###### Examples:

The following is an example of the drag and drop listener provider extension:

    <extension
          id="dragDropListenerProviders"
          name="%ext.dragDropListenerProviders"
          point="org.eclipse.gmf.runtime.common.ui.services.dnd.dragDropListenerProviders">
          <DragDropListenerProvider
             class="org.eclipse.test.project.ui.internal.providers.dnd.DragDropListenerProvider"
             id="myExplorerDragDropListenerProvider">
             <Priority
                name="Lowest">
             </Priority>
             <ViewId
                id="org.eclipse.test.project.ui.views.MyExplorer">
               <ElementType
                  class="org.eclipse.test.project.ui.internal.providers.myexplorer.MyElement">
                 <OperationType
                    operation="drag">
                   <TransferId
                      transferId="selection">
                   </TransferId>
                   <TransferId
                      transferId="customData">
                   </TransferId>
                   <TransferId
                      transferId="file">
                   </TransferId>
                   <TransferId
                      transferId="text">
                   </TransferId>
                   <TransferId
                      transferId="richText">
                   </TransferId>
                 </OperationType>
                 <OperationType
                    operation="drop">
                   <TransferId
                      transferId="selection">
                   </TransferId>
                   <TransferId
                      transferId="customData">
                   </TransferId>
                 </OperationType>
               </ElementType>
             </ViewId>
          </DragDropListenerProvider>
       </extension>

###### API Information:

The value of the `class` attribute must represent a subclass of `org.eclipse.gmf.runtime.common.core.service.AbstractProvider` that implements `org.eclipse.gmf.runtime.common.ui.services.dnd.core.IDragDropListenerProvider`, e.g. a subclass of `org.eclipse.gmf.runtime.common.ui.services.dnd.core.AbstractDragDropListenerProvider`.

Copyright (c) 2003, 2005 IBM Corporation and others.
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