org.eclipse.ui.navigator

## Interface INavigatorDnDService

    public interface INavigatorDnDService

Provides instances of `CommonDragAdapterAssistant` and `CommonDropAdapterAssistant` for the associated `INavigatorContentService`.

Clients should only take note of this Service they are are using the `INavigatorContentService` in the context of a viewer which is not or does not extend `CommonViewer`. Clients should take a look at the initialization of the DND support in the `CommonViewer` if they wish to support this capability in their own viewers.

Since:
  3.2
See Also:
  `CommonDragAdapter`, `CommonDragAdapterAssistant`, `CommonDropAdapter`, `CommonDropAdapterAssistant`, `CommonViewer`, `INavigatorContentService.getDnDService()`, Drag and Drop: Adding Drag and Drop to an SWT Application, Drag and Drop in the Eclipse UI (Custom Transfer Types)
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `bindDragAssistant(CommonDragAdapterAssistant anAssistant)` Clients may choose to programmatically bind drag assistants to an instance of the DND Service.
`CommonDropAdapterAssistant[]` `findCommonDropAdapterAssistants(Object aDropTarget, IStructuredSelection theDragSelection)` This method returns an array of `CommonDropAdapterAssistant` from content extensions that are visible and active for the associated `INavigatorContentService`.
`CommonDropAdapterAssistant[]` `findCommonDropAdapterAssistants(Object aDropTarget, TransferData theTransferType)` This method returns an array of `CommonDropAdapterAssistant` from content extensions that are visible and active for the associated `INavigatorContentService`.
`CommonDragAdapterAssistant[]` `getCommonDragAssistants()` As part of the org.eclipse.ui.navigator.viewer extension point, clients may explicit extend the support Transfer Types of a particular viewer using the dragAssistant element.

### Method Detail

#### getCommonDragAssistants

    CommonDragAdapterAssistant[] getCommonDragAssistants()

As part of the org.eclipse.ui.navigator.viewer extension point, clients may explicit extend the support Transfer Types of a particular viewer using the dragAssistant element. This element defines a class which extends `CommonDragAdapterAssistant` and can direct the viewer on how to provide different kinds of DND Transfer Types. The array is returned in no particular order.

Returns:
  An array of `CommonDragAdapterAssistant` or an empty array.

#### bindDragAssistant

    void bindDragAssistant(CommonDragAdapterAssistant anAssistant)

Clients may choose to programmatically bind drag assistants to an instance of the DND Service. A programmatic binding is not persisted between sessions and is not propagated to other instances of `INavigatorContentService` with the same id.

Parameters:
  `anAssistant` - The assistant to bind.

#### findCommonDropAdapterAssistants

    CommonDropAdapterAssistant[] findCommonDropAdapterAssistants(Object aDropTarget,
                                                                 TransferData theTransferType)

This method returns an array of `CommonDropAdapterAssistant` from content extensions that are visible and active for the associated `INavigatorContentService`. The array is sorted by priority, with overrides taken into account.

The array should be processed from the first element to the last, asking each extension to `CommonDropAdapterAssistant.validateDrop(Object, int, org.eclipse.swt.dnd.TransferData)`. The first to successfully validate the drop operation will have the opportunity to `handle the drop`

Parameters:
  `aDropTarget` - The target element in the viewer of the drop operation.
  `theTransferType` - The transfer type of the current drop operation.
Returns:
  An array of `CommonDropAdapterAssistant`s that are defined by the set of org.eclipse.ui.navigator.navigatorContent/navigatorContent extensions that provide a possibleChildren expression that matches the given drop target.

#### findCommonDropAdapterAssistants

    CommonDropAdapterAssistant[] findCommonDropAdapterAssistants(Object aDropTarget,
                                                                 IStructuredSelection theDragSelection)

This method returns an array of `CommonDropAdapterAssistant` from content extensions that are visible and active for the associated `INavigatorContentService`.

The array should be processed from the first element to the last, asking each extension to `CommonDropAdapterAssistant.validateDrop(Object, int, org.eclipse.swt.dnd.TransferData)`. The first to successfully validate the drop operation will have the opportunity to `handle the drop`

Parameters:
  `aDropTarget` - The target element in the viewer of the drop operation.
  `theDragSelection` - The drag selection of the current drop operation.
Returns:
  An array of `CommonDropAdapterAssistant`s that are defined by the set of org.eclipse.ui.navigator.navigatorContent/navigatorContent extensions that provide a possibleChildren expression that matches the given drop target.