@Override
    public void doDropFiles(List<? extends File> files, @NotNull TreePath target) {
      ApplicationManager.getApplication().executeOnPooledThread(() -> {
        var virtualFiles = getVirtualFiles(files);
        ReadAction.nonBlocking(() -> getDropContext(psiFilesFromVirtualFiles(virtualFiles), target))
          .finishOnUiThread(ModalityState.defaultModalityState(), dropContext -> {
            DropTargetNode node = getLastUserObject(DropTargetNode.class, target);
            if (node != null) {
              node.dropExternalFiles((PsiFileSystemItem[])getPsiElements(dropContext), DataManager.getInstance().getDataContext(myTree));
            }
            else {
              doDrop(dropContext, true);
            }
          })
          .submit(AppExecutorUtil.getAppExecutorService());
      });
    }
@Override
    public void doDropFiles(List<? extends File> files, @NotNull TreePath target)