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);
}
}
}
}