From 8493908710fd88ba41aa26a2f44ff38273e2277c Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 17 Jul 2015 18:01:38 +0300 Subject: [PATCH] Conflicts Dialog: Add handler for "Show conflicts" action --- .../ui/KotlinExtractFunctionDialog.java | 7 +++++++ .../kotlin/idea/refactoring/jetRefactoringUtil.kt | 14 +++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java index 2ae2739bd8a..fb06d504935 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java @@ -222,6 +222,13 @@ public class KotlinExtractFunctionDialog extends DialogWrapper { RefactoringPackage.checkConflictsInteractively( project, conflicts, + new Function0() { + @Override + public Unit invoke() { + close(OK_EXIT_CODE); + return Unit.INSTANCE$; + } + }, new Function0() { @Override public Unit invoke() { diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt index c9009979351..2dcc585d363 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt @@ -175,13 +175,21 @@ public fun PsiElement.getExtractionContainers(strict: Boolean = true, includeAll } } -public fun Project.checkConflictsInteractively(conflicts: MultiMap, onAccept: () -> Unit) { +public fun Project.checkConflictsInteractively( + conflicts: MultiMap, + onShowConflicts: () -> Unit = {}, + onAccept: () -> Unit) { if (!conflicts.isEmpty()) { if (ApplicationManager.getApplication()!!.isUnitTestMode()) throw ConflictsInTestsException(conflicts.values()) - val dialog = ConflictsDialog(this, conflicts, onAccept) + val dialog = ConflictsDialog(this, conflicts) { onAccept() } dialog.show() - if (!dialog.isOK()) return + if (!dialog.isOK()) { + if (dialog.isShowConflicts()) { + onShowConflicts() + } + return + } } onAccept()