mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 06:05:01 +07:00
move: api to check if move via DnD is actually redundant (IDEA-57366 ;IDEA-57365 )
This commit is contained in:
+15
@@ -24,6 +24,7 @@ import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.file.JavaDirectoryServiceImpl;
|
||||
import com.intellij.psi.impl.source.jsp.jspJava.JspClass;
|
||||
import com.intellij.refactoring.JavaRefactoringSettings;
|
||||
import com.intellij.refactoring.RefactoringBundle;
|
||||
@@ -33,6 +34,7 @@ import com.intellij.refactoring.util.CommonRefactoringUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.refactoring.util.RadioUpDownListener;
|
||||
import com.intellij.refactoring.util.RefactoringUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -294,4 +296,17 @@ public class MoveClassesOrPackagesHandlerBase extends MoveHandlerDelegate {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMoveRedundant(PsiElement source, PsiElement target) {
|
||||
if (target instanceof PsiDirectory && source instanceof PsiClass) {
|
||||
try {
|
||||
JavaDirectoryServiceImpl.checkCreateClassOrInterface((PsiDirectory)target, ((PsiClass)source).getName());
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isMoveRedundant(source, target);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user