radioField method
Implementation
String radioField(String elementName, String elementType, Map<String, dynamic> map, {String? parent}) {
String items;
if (map['type'] == 'enum') {
items = '''
${elementType}.values.map((value) {
return ListTile(
title: const Text(value.toString().split('.').last),
leading: Radio(
value: value.toString().split('.').last,
groupValue: _selectedValue,
onChanged: (value) {
setState(() {
_selectedValue = value;
});
onSaved('${elementName}', value);
},
);
}).toList()
''';
} else {
items = '[' + (map['options'] as List<Map<String, dynamic>>).map((e) => '''ListTile(
title: const Text("${e['label'] ?? e['value'].toString()}"),
leading: Radio(
value: "${e['value'].toString()}",
groupValue: _selectedValue,
onChanged: (value) {
setState(() {
_selectedValue = value;
});
onSaved('${elementName}', value);
},
),
)''').toList().join(',\n') + ']';
}
return '''
var _selectedValue = _formData['${elementName}'];
return Column(
children: $items,
)
''';
}