code: private Form createForm() {
      Form form = Form.of();
      // assign groups from this category
      List<Group> groups = categoryModel.getGroups();
      // if there are no groups, initialize them anyways as a list
      if (groups == null) {
        groups = new ArrayList<>();
      }
  
      // get groups of this form
      List<com.dlsc.formsfx.model.structure.Group> formGroups = form.getGroups();
  
      // create PreferenceGroups from Groups
      for (int i = 0; i < groups.size(); i++) {
        PreferencesFxGroup preferencesGroup =
            (PreferencesFxGroup) PreferencesFxGroup.of().title(groups.get(i).getDescription());
        groups.get(i).setPreferencesGroup(preferencesGroup);
        formGroups.add(preferencesGroup);
        // fill groups with settings (as FormsFX fields)
        for (Setting setting : groups.get(i).getSettings()) {
          formGroups.get(i).getElements().add(setting.getField());
        }
      }
  
      // ensures instant persistance of value changes
      form.binding(BindingMode.CONTINUOUS);
      return form;
    }
docs: Creates a {@link Form} with {@link Group} and {@link Setting} of this {@link Category}.
  
  @return the created form.