From abfb0332518f4306b68f270aa855c73c0093e9e5 Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 12 Aug 2014 14:12:47 +0400 Subject: [PATCH] show 'Preview' if usages in generated code are found during rename/move refactoring (IDEA-128194) --- .../MoveClassesOrPackagesProcessor.java | 6 +----- .../refactoring/rename/RenameProcessor.java | 6 +----- .../safeDelete/SafeDeleteProcessor.java | 8 ++++---- .../com/intellij/usageView/UsageViewUtil.java | 16 ++++++++++++++++ 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java index f398dfdd115a..0e02b8f94e28 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java @@ -23,7 +23,6 @@ import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.wm.WindowManager; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.PackageScope; @@ -48,7 +47,6 @@ import com.intellij.refactoring.util.classRefs.ClassReferenceScanner; import com.intellij.usageView.UsageInfo; import com.intellij.usageView.UsageViewDescriptor; import com.intellij.usageView.UsageViewUtil; -import com.intellij.util.ArrayUtil; import com.intellij.util.IncorrectOperationException; import com.intellij.util.Processor; import com.intellij.util.VisibilityUtil; @@ -472,9 +470,7 @@ public class MoveClassesOrPackagesProcessor extends BaseRefactoringProcessor { } protected boolean isPreviewUsages(UsageInfo[] usages) { - if (UsageViewUtil.hasNonCodeUsages(usages)) { - WindowManager.getInstance().getStatusBar(myProject).setInfo( - RefactoringBundle.message("occurrences.found.in.comments.strings.and.non.java.files")); + if (UsageViewUtil.reportNonRegularUsages(usages, myProject)) { return true; } else { diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/RenameProcessor.java b/platform/lang-impl/src/com/intellij/refactoring/rename/RenameProcessor.java index 7e8ec09f3e23..a34d30dc5401 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/RenameProcessor.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/RenameProcessor.java @@ -320,11 +320,7 @@ public class RenameProcessor extends BaseRefactoringProcessor { protected boolean isPreviewUsages(UsageInfo[] usages) { if (myForceShowPreview) return true; if (super.isPreviewUsages(usages)) return true; - if (UsageViewUtil.hasNonCodeUsages(usages)) { - WindowManager.getInstance().getStatusBar(myProject) - .setInfo(RefactoringBundle.message("occurrences.found.in.comments.strings.and.non.java.files")); - return true; - } + if (UsageViewUtil.reportNonRegularUsages(usages, myProject)) return true; return false; } diff --git a/platform/lang-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteProcessor.java b/platform/lang-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteProcessor.java index e6acbaa4adda..b8f069d5f142 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteProcessor.java +++ b/platform/lang-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteProcessor.java @@ -26,7 +26,6 @@ import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Ref; -import com.intellij.openapi.wm.WindowManager; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.searches.ReferencesSearch; @@ -40,7 +39,9 @@ import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteCustomUsageInfo; import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceSimpleDeleteUsageInfo; import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceUsageInfo; import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteUsageInfo; -import com.intellij.refactoring.util.*; +import com.intellij.refactoring.util.NonCodeSearchDescriptionLocation; +import com.intellij.refactoring.util.RefactoringUIUtil; +import com.intellij.refactoring.util.TextOccurrencesUtil; import com.intellij.usageView.UsageInfo; import com.intellij.usageView.UsageViewDescriptor; import com.intellij.usageView.UsageViewUtil; @@ -352,8 +353,7 @@ public class SafeDeleteProcessor extends BaseRefactoringProcessor { @Override protected boolean isPreviewUsages(UsageInfo[] usages) { - if(myPreviewNonCodeUsages && (UsageViewUtil.hasNonCodeUsages(usages) || UsageViewUtil.hasUsagesInGeneratedCode(usages, myProject))) { - WindowManager.getInstance().getStatusBar(myProject).setInfo(RefactoringBundle.message("occurrences.found.in.comments.strings.non.java.files.and.generated.code")); + if(myPreviewNonCodeUsages && UsageViewUtil.reportNonRegularUsages(usages, myProject)) { return true; } diff --git a/platform/lang-impl/src/com/intellij/usageView/UsageViewUtil.java b/platform/lang-impl/src/com/intellij/usageView/UsageViewUtil.java index ca230c790e65..4dee56707ae0 100644 --- a/platform/lang-impl/src/com/intellij/usageView/UsageViewUtil.java +++ b/platform/lang-impl/src/com/intellij/usageView/UsageViewUtil.java @@ -24,10 +24,13 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.GeneratedSourcesFilter; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.openapi.wm.StatusBar; +import com.intellij.openapi.wm.WindowManager; import com.intellij.psi.ElementDescriptionUtil; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiReference; +import com.intellij.refactoring.RefactoringBundle; import com.intellij.refactoring.util.MoveRenameUsageInfo; import com.intellij.refactoring.util.NonCodeUsageInfo; import com.intellij.usages.Usage; @@ -179,4 +182,17 @@ public class UsageViewUtil { } return usageInfos; } + + public static boolean reportNonRegularUsages(UsageInfo[] usages, final Project project) { + boolean inGeneratedCode = hasUsagesInGeneratedCode(usages, project); + if (hasNonCodeUsages(usages) || inGeneratedCode) { + StatusBar statusBar = WindowManager.getInstance().getStatusBar(project); + if (statusBar != null) { + statusBar.setInfo(inGeneratedCode ? RefactoringBundle.message("occurrences.found.in.comments.strings.non.java.files.and.generated.code") + : RefactoringBundle.message("occurrences.found.in.comments.strings.and.non.java.files")); + } + return true; + } + return false; + } }