createWidgets method
Implementation
List<Widget> createWidgets(
UISchemaElement schema,
BuildContext context,
List<Widget> widgets,
) {
if (schema.type == ElementType.Label.name) {
widgets.add(
ListTile(
title: Text(
schema.text!,
style: Theme.of(context).textTheme.titleMedium,
),
),
);
} else if (schema.type == ElementType.Control.name) {
widgets.add(getControl(schema, dataSchema, context));
} else if (schema.type == ElementType.VerticalLayout.name ||
schema.type == ElementType.HorizontalLayout.name ||
schema.type == ElementType.Group.name) {
if (schema.label != null) {
widgets.add(
ListTile(
title: Text(
schema.label!,
style: Theme.of(context).textTheme.labelLarge,
),
visualDensity: VisualDensity(
horizontal: VisualDensity.minimumDensity,
vertical: VisualDensity.minimumDensity,
),
),
);
}
for (var element in schema.elements!) {
List<Widget> current = createWidgets(element, context, []);
widgets.addAll(current);
}
} else {
widgets.add(Text("Unknown uiSchema type"));
}
return widgets;
}