IDEADEV-40480

Can't rename java files outside source roots
This commit is contained in:
greg
2009-09-22 15:33:34 +04:00
parent 5602cb9514
commit 8aefdf1c71
2 changed files with 7 additions and 2 deletions
@@ -1,12 +1,17 @@
package com.intellij.refactoring.rename;
import com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil;
import com.intellij.openapi.util.Condition;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiJavaFile;
import com.intellij.psi.JspPsiUtil;
public class JavaVetoRenameCondition implements Condition<PsiElement> {
public boolean value(final PsiElement element) {
return element instanceof PsiJavaFile && !JspPsiUtil.isInJspFile(element) && ((PsiJavaFile) element).getClasses().length > 0;
return element instanceof PsiJavaFile &&
!JspPsiUtil.isInJspFile(element) &&
!CollectHighlightsUtil.isOutsideSourceRootJavaFile((PsiFile)element) &&
((PsiJavaFile) element).getClasses().length > 0;
}
}
@@ -68,7 +68,7 @@ public class PsiElementRenameHandler implements RenameHandler {
static boolean canRename(Project project, Editor editor, PsiElement element) {
if (element == null) return false;
if (CollectHighlightsUtil.isOutsideSourceRootJavaFile(element.getContainingFile())) return false;
if (!(element instanceof PsiFile) && CollectHighlightsUtil.isOutsideSourceRootJavaFile(element.getContainingFile())) return false;
boolean hasRenameProcessor = RenamePsiElementProcessor.forElement(element) != RenamePsiElementProcessor.DEFAULT;
boolean hasWritableMetaData = element instanceof PsiMetaOwner && ((PsiMetaOwner)element).getMetaData() instanceof PsiWritableMetaData;