fieldWidget method
Returns the matching widget for a given Field
Implementation
Widget fieldWidget(
Field field, {
String? nextFieldId,
bool isFinal = false,
}) {
final AutovalidateMode validateMode;
if (forceDisplayFieldsError) {
validateMode = AutovalidateMode.always;
} else {
validateMode = AutovalidateMode.onUserInteraction;
}
if (theme.customBuilders.containsKey(field.runtimeType)) {
return theme.customBuilders[field.runtimeType]!(
context,
field: field,
isFinal: isFinal,
nextFieldId: nextFieldId,
);
}
if (field is AFTextField) {
return buildTextField(nextFieldId, field, isFinal);
} else if (field is AFSearchModelField) {
return buildSearchModelField(field, validateMode);
} else if (field is AFSearchMultipleModelsField) {
return buildSearchMultipleModelsField(field, validateMode);
} else if (field is AFSelectField) {
return buildSelectField(field);
} else if (field is AFFileField) {
return buildFileField(field);
} else if (field is AFBooleanField) {
return buildBooleanField(field);
} else if (field is AFFormField) {
return buildFormFieldWidget(field);
} else if (field is AFMultipleFormField) {
return buildMultipleFormFieldWidget(field);
}
throw Exception(
'No builder found for field ${field.name} of type ${field.runtimeType}');
}