public void drop(DropTargetEvent event) { if (PluginTransfer.getInstance().isSupportedType(event.currentDataType)) { super.drop(event); } else { Object target = getCurrentTarget() != null ? getCurrentTarget() : getViewer().getInput(); CommonDropAdapterAssistant[] assistants = dndService .findCommonDropAdapterAssistants(target, getCurrentTransfer()); IStatus valid = null; for (int i = 0; i < assistants.length; i++) { try { valid = assistants[i].validateDrop(getCurrentTarget(), getCurrentOperation(), getCurrentTransfer()); if (valid != null && valid.isOK()) { assistants[i].handleDrop(this, event, getCurrentTarget()); return; } } catch (Throwable t) { NavigatorPlugin.logError(0, t.getMessage(), t); } } } }