@Override
    public void doDrop(@NotNull DropContext context) {
      final PsiElement targetElement = context.targetElement();
      final PsiElement @Nullable [] sources = getPsiElements(context);
      if (targetElement == null || sources == null) return;

      final PsiDirectory psiDirectory;
      if (targetElement instanceof PsiDirectoryContainer directoryContainer) {
        final PsiDirectory[] psiDirectories = directoryContainer.getDirectories();
        psiDirectory = psiDirectories.length != 0 ? psiDirectories[0] : null;
      }
      else if (targetElement instanceof PsiDirectory) {
        psiDirectory = (PsiDirectory)targetElement;
      }
      else {
        final PsiFile containingFile = targetElement.getContainingFile();
        LOG.assertTrue(containingFile != null, targetElement);
        psiDirectory = containingFile.getContainingDirectory();
      }
      CopyHandler.doCopy(sources, psiDirectory);
    }
@Override
    public void doDrop(@NotNull DropContext context)