@Override
  protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
    // Add the "accept" checkbox to the form.
    acceptCheckbox =
        uifactory.addCheckboxesVertical(
            ACKNOWLEDGE_CHECKBOX_NAME,
            null,
            formLayout,
            new String[] {DCL_CHECKBOX_KEY},
            new String[] {translate(NLS_DISCLAIMER_ACKNOWLEDGED)},
            null,
            1);
    acceptCheckbox.setEscapeHtml(false);
    acceptCheckbox.setMandatory(false);
    acceptCheckbox.select(DCL_CHECKBOX_KEY, readOnly);

    // Add the additional checkbox to the form (depending on the configuration)
    if (CoreSpringFactory.getImpl(RegistrationModule.class).isDisclaimerAdditionalCheckbox()) {
      String additionalCheckboxText = translate("disclaimer.additionalcheckbox");
      if (additionalCheckboxText != null) {
        additionalCheckbox =
            uifactory.addCheckboxesVertical(
                ADDITIONAL_CHECKBOX_NAME,
                null,
                formLayout,
                new String[] {DCL_CHECKBOX_KEY2},
                new String[] {additionalCheckboxText},
                null,
                1);
        additionalCheckbox.setEscapeHtml(false);
        additionalCheckbox.select(DCL_CHECKBOX_KEY2, readOnly);
      }
    }

    if (readOnly) {
      // Disable when set to read only
      formLayout.setEnabled(!readOnly);
    } else {
      // Create submit and cancel buttons
      final FormLayoutContainer buttonLayout =
          FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator());
      formLayout.add(buttonLayout);
      buttonLayout.setElementCssClass("o_sel_disclaimer_buttons");
      uifactory.addFormSubmitButton(DCL_ACCEPT, NLS_DISCLAIMER_OK, buttonLayout);
      uifactory.addFormCancelButton(NLS_DISCLAIMER_NOK, buttonLayout, ureq, getWindowControl());
    }
  }