void (TreePath @NotNull [] sources, @NotNull TreePath target) { DropTargetNode node = getLastUserObject(DropTargetNode.class, target); if (node != null && node.canDrop(sources)) { node.drop(sources, DataManager.getInstance().getDataContext(myTree)); } else { ReadAction.nonBlocking(() -> getDropContext(getNonDataContextPsiElements(sources), target)) .finishOnUiThread(ModalityState.defaultModalityState(), context -> doDrop(context, false)) .submit(AppExecutorUtil.getAppExecutorService()); } }