public static UDIGDropTargetListener addDropSupport(StructuredViewer viewer, IDropTargetProvider defaultTarget, boolean showDropFeedback,
boolean scrollExpandEnabled ) {
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK | DND.DROP_DEFAULT;
Set<Transfer> transfers = getTransfers();
UDIGViewerDropAdapter viewerDropAdapter = new UDIGViewerDropAdapter(viewer, defaultTarget);
viewerDropAdapter.setFeedbackEnabled(showDropFeedback);
viewerDropAdapter.setScrollExpandEnabled(scrollExpandEnabled);
viewer.addDropSupport(dndOperations,
transfers.toArray(new Transfer[transfers.size()]),
viewerDropAdapter);
return viewerDropAdapter;
}