The following form generators exist:

  1. For a single element: GetExtentFormForItem

  2. For a single element as DetailForm: GetDetailFormForItem

  3. For a non-existent object of a specific metaclass: GetExtentFormForItemsMetaClass

  4. For a list of items: GetListFormForCollection

  5. For a list of root elements: GetExtentFormForExtent

  6. For a list of elements of a property: GetListFormForPropertyValues

Types of Form Generators

There are:

  1. FormFinder: Finds the best form from existing definitions via FormAssociation.

  2. FormCreator: Creates the best form from available data.

  3. FormFactory: First calls the FormFinder, then the FormCreator if the corresponding form was not found.

Additionally, there are FormModifications, which subsequently change a form that has already been generated.