/**
   * @see
   *     org.olat.core.gui.components.form.flexible.impl.FormBasicController#initForm(org.olat.core.gui.components.form.flexible.FormItemContainer,
   *     org.olat.core.gui.control.Controller, org.olat.core.gui.UserRequest)
   */
  @Override
  @SuppressWarnings("unused")
  protected void initForm(
      final FormItemContainer formLayout, final Controller listener, final UserRequest ureq) {
    /*
     * create a form with a title and 4 input fields to enter some persons data
     */
    setFormTitle("guidemo_flexi_form_customlayout");
    final int defaultDisplaySize = 32;
    final boolean inputMode = !personData.isReadOnly();

    firstName =
        uifactory.addTextElement(
            "firstname",
            "guidemo.flexi.form.firstname",
            256,
            personData.getFirstName(),
            formLayout);
    firstName.setNotEmptyCheck("guidemo.flexi.form.mustbefilled");
    firstName.setMandatory(true);
    firstName.setEnabled(inputMode);

    lastName =
        uifactory.addTextElement(
            "lastname", "guidemo.flexi.form.lastname", 256, personData.getLastName(), formLayout);
    lastName.setNotEmptyCheck("guidemo.flexi.form.mustbefilled");
    lastName.setMandatory(true);
    lastName.setEnabled(inputMode);

    institution =
        uifactory.addTextElement(
            "institution",
            "guidemo.flexi.form.institution",
            256,
            personData.getInstitution(),
            formLayout);
    institution.setEnabled(inputMode);

    if (inputMode) {
      // submit only if in input mode
      submit = new FormSubmit("submit", "submit");
      formLayout.add(submit);
    }
  }