This commit is contained in:
anna
2009-10-20 21:06:46 +04:00
parent df35560e35
commit d349ae724f
2 changed files with 20 additions and 5 deletions

View File

@@ -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);
}

View File

@@ -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;