renderProperty method
Iterable<Widget>
renderProperty(
- BuildContext context,
- IMetaFormContext metaForm,
- HandledPaths paths,
- SunnyFormFieldState<
T> state, { - Key? key,
override
Renders a widget (or null) for a provided HandledPaths (see acceptProperties)
Implementation
@override
Iterable<Widget> renderProperty(
BuildContext context,
IMetaFormContext metaForm,
HandledPaths paths,
SunnyFormFieldState<T> state,
{Key? key}) {
final MSchemaRef embedRef = paths.data["embedRef"] as MSchemaRef;
final embedPath = paths.path;
final form = context.form();
MModel? subject = context.form().get(embedPath);
if (subject == null) {
subject = embedRef.newInstance();
form.set(embedPath, subject);
}
return [
MetaForm(
name: "embed-${paths.path.toKey()}",
metaFormContext: MetaFormContext.embedded(
context,
ref: embedRef,
embedPath: embedPath,
overrides: metaForm.overrides,
extraHandlers: metaForm.extraHandlers.cast(),
scope: metaForm.scope,
subject: subject!,
),
)
];
}