Bug 129061 [Common Navigator] Request to support programmatic binding of drag adapter
We have a problem in the Team use of the Common Navigator is that each repository provider may define one or more viewers. It is not practical for each of the viewer definitions to define the complete set of drag assistants, especially considering that each model may have their own elements that can be dragged. It would simplify things if we could just programmatically bind drag assistants to a viewer. Then we could bind he resource drag assistant to all Team viewers for free. Currently, each provider with a viewer must add a dependency to the org.eclipse.ui.navigator.resources plugin and then add the dragAssistant binding to each viewer.
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorDnDService.java
contentService = aContentService;
	}
	public synchronized CommonDragAdapterAssistant[] getCommonDragAssistants() {
		if (dragAssistants == null) {
			int i = 0;
			Set dragDescriptors = ((NavigatorViewerDescriptor) contentService
					.getViewerDescriptor()).getDragAssistants();
			dragAssistants = new CommonDragAdapterAssistant[dragDescriptors
					.size()];
			for (Iterator iter = dragDescriptors.iterator(); iter.hasNext();) {
				CommonDragAssistantDescriptor descriptor = (CommonDragAssistantDescriptor) iter
						.next();
				dragAssistants[i++] = descriptor.createDragAssistant();
			}
		}
		return dragAssistants;
	}
	public CommonDropAdapterAssistant[] findCommonDropAdapterAssistants(
			Object aDropTarget, TransferData aTransferType) {
 
		 
		CommonDropAdapterDescriptor[] descriptors = CommonDropDescriptorManager
				.getInstance().findCommonDropAdapterAssistants(aDropTarget,
						contentService);
		if (descriptors.length == 0) {
			return NO_ASSISTANTS;
		}
		if (LocalSelectionTransfer.getTransfer().isSupportedType(aTransferType)  
						&& LocalSelectionTransfer.getTransfer().getSelection() instanceof IStructuredSelection) {
			return getAssistantsBySelection(descriptors, (IStructuredSelection) LocalSelectionTransfer.getTransfer().getSelection());