public void setActions(
      final DialogBuilder builder,
      MergePanel2 mergePanel,
      final Convertor<DialogWrapper, Boolean> preOkHook) {
    builder.removeAllActions(); // otherwise dialog will get default actions (OK, Cancel)

    if (myOkButtonPresentation != null) {
      if (builder.getOkAction() == null) {
        builder.addOkAction();
      }

      configureAction(builder, builder.getOkAction(), myOkButtonPresentation);
      builder.setOkOperation(
          new Runnable() {
            @Override
            public void run() {
              if (preOkHook != null && !preOkHook.convert(builder.getDialogWrapper())) return;
              myOkButtonPresentation.run(builder.getDialogWrapper());
            }
          });
    }

    if (myCancelButtonPresentation != null) {
      if (builder.getCancelAction() == null) {
        builder.addCancelAction();
      }

      configureAction(builder, builder.getCancelAction(), myCancelButtonPresentation);
      builder.setCancelOperation(
          new Runnable() {
            @Override
            public void run() {
              myCancelButtonPresentation.run(builder.getDialogWrapper());
            }
          });
    }

    if (getMergeContent() != null && mergePanel.getMergeList() != null) {
      new AllResolvedListener(mergePanel, builder.getDialogWrapper());
    }
  }