private void selectMergeVariant() {
    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;
    }
  }
private void selectMergeVariant()