void () { switch (myInteraction.selectMergeVariant()) { case all: mergeAll(true); break; case showLatest: runInBackground( message("progress.title.loading.recent.branch.revisions", myMergeContext.getBranchName()), new MergeCalculatorTask(this, null, task -> runInEdt(() -> selectRevisionsToMerge(task, false)) ) ); break; case select: runInBackground(message("progress.title.looking.for.branch.origin"), new LookForBranchOriginTask(this, false, copyPoint -> runInBackground( message("progress.title.filtering.branch.revisions", myMergeContext.getBranchName()), new MergeCalculatorTask(this, copyPoint, task -> runInEdt(() -> selectRevisionsToMerge(task, true)) ) ) )); case cancel: break; } }