void (UsageInfo @NotNull [] conflictUsages, UsageInfo @NotNull [] usages) { UsageViewPresentation presentation = new UsageViewPresentation(); presentation.setTabText(LangBundle.message("tab.title.safe.delete.conflicts")); presentation.setTargetsNodeText(RefactoringBundle.message("attempting.to.delete.targets.node.text")); presentation.setShowReadOnlyStatusAsRed(true); presentation.setShowCancelButton(true); presentation.setCodeUsagesString(RefactoringBundle.message("safe.delete.conflict.title")); presentation.setNonCodeUsagesString(RefactoringBundle.message("occurrences.found.in.comments.strings.and.non.java.files")); presentation.setUsagesString(RefactoringBundle.message("usageView.usagesText")); UsageViewManager manager = UsageViewManager.getInstance(myProject); UsageView usageView = showUsages(conflictUsages, presentation, manager); usageView.addPerformOperationAction(new RerunSafeDelete(myProject, myElements, usageView), RefactoringBundle.message("retry.command"), "", RefactoringBundle.message("rerun.safe.delete")); usageView.addPerformOperationAction(() -> { UsageInfo[] preprocessedUsages = usages; for (SafeDeleteProcessorDelegate delegate : SafeDeleteProcessorDelegate.EP_NAME.getExtensionList()) { preprocessedUsages = delegate.preprocessUsages(myProject, preprocessedUsages); if (preprocessedUsages == null) return; } UsageInfo[] filteredUsages = UsageViewUtil.removeDuplicatedUsages(preprocessedUsages); execute(filteredUsages); }, LangBundle.message("command.name.delete.anyway"), RefactoringBundle.message("usageView.need.reRun"), RefactoringBundle.message("usageView.doAction")); }