mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
move
This commit is contained in:
@@ -27,10 +27,17 @@ import org.jetbrains.annotations.Nullable;
|
||||
public class MoveClassesHandler extends MoveClassesOrPackagesHandlerBase {
|
||||
public boolean canMove(final PsiElement[] elements, @Nullable final PsiElement targetContainer) {
|
||||
for(PsiElement element: elements) {
|
||||
if (element instanceof JspClass) return false;
|
||||
if (!(element instanceof PsiClass)) return false;
|
||||
if (!(element.getParent() instanceof PsiFile)) return false;
|
||||
if (CollectHighlightsUtil.isOutsideSourceRootJavaFile((PsiFile)element.getParent())) return false;
|
||||
PsiFile parentFile;
|
||||
if (element instanceof PsiJavaFile) {
|
||||
if (((PsiJavaFile)element).getClasses().length == 0) return false;
|
||||
parentFile = (PsiFile)element;
|
||||
} else {
|
||||
if (element instanceof JspClass) return false;
|
||||
if (!(element instanceof PsiClass)) return false;
|
||||
if (!(element.getParent() instanceof PsiFile)) return false;
|
||||
parentFile = (PsiFile)element.getParent();
|
||||
}
|
||||
if (CollectHighlightsUtil.isOutsideSourceRootJavaFile(parentFile)) return false;
|
||||
}
|
||||
return super.canMove(elements, targetContainer);
|
||||
}
|
||||
|
||||
@@ -76,7 +76,15 @@ public class MoveClassesOrPackagesProcessor extends BaseRefactoringProcessor {
|
||||
boolean searchInNonJavaFiles,
|
||||
MoveCallback moveCallback) {
|
||||
super(project);
|
||||
myElementsToMove = elements;
|
||||
final List<PsiElement> toMove = new ArrayList<PsiElement>();
|
||||
for (PsiElement element : elements) {
|
||||
if (element instanceof PsiJavaFile) {
|
||||
Collections.addAll(toMove, ((PsiJavaFile)element).getClasses());
|
||||
} else {
|
||||
toMove.add(element);
|
||||
}
|
||||
}
|
||||
myElementsToMove = toMove.toArray(new PsiElement[toMove.size()]);
|
||||
myMoveDestination = moveDestination;
|
||||
myTargetPackage = myMoveDestination.getTargetPackage();
|
||||
mySearchInComments = searchInComments;
|
||||
|
||||
Reference in New Issue
Block a user