buildForm method

  1. @override
Widget buildForm(
  1. BuildContext context,
  2. MSchemaRef ref, {
  3. IFormController? controller,
  4. MetadataOverrides? overrides,
  5. MBaseModel? record,
  6. List<MetaPropertyHandler> extraHandlers = const [],
})
override

Implementation

@override
Widget buildForm(
  BuildContext context,
  MSchemaRef ref, {
  final IFormController? controller,
  MetadataOverrides? overrides,
  MBaseModel? record,
  List<MetaPropertyHandler> extraHandlers = const [],
}) {
  if (controller != null && controller is ModelBasedFormController) {
    var formRef = ref;
    return MetaForm(
      context: context,
      parentForm: controller,
      attachForm: true,
      inheritForm: true,
      skipIfUnmodified: false,
      name: "$controller",
      ref: formRef,
      metaFormContext: metaFormService.createContext(
        context,
        controller.mmodel,
        schemaRef: formRef,
        overrides: overrides,
        extraHandlers: extraHandlers,
        // embedPath: embedPath,
        // schema: schema,
        scope: {},
      ),
    );
  } else {
    record ??=
        mmodelRegistry.instantiate(json: <String, dynamic>{}, type: ref);
    final override = _formBuilders[ref] ??
        (context, ref, record) =>
            defaultMModelFormBuilder(context, ref, record);

    final builtForm = override(context, ref, record);
    return builtForm;
  }
}