deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement xml)
{
// deserialize
super.deserialize(xml);
// set properties
value = Xml.get(node: xml, tag: 'value');
matchtype = Xml.get(node: xml, tag: 'matchtype') ?? Xml.get(node: xml, tag: 'searchtype');
//check to see if value has been specified so the form does not fill it out.
hasDefaulted = (Xml.get(node: xml, tag: 'value') == null);
String? empty = Xml.get(node: xml, tag: 'addempty');
if (S.isBool(empty)) addempty = S.toBool(empty);
// clear options
for (var option in this.options) {
option.dispose();
}
this.options.clear();
// Build options
List<OptionModel> options = findChildrenOfExactType(OptionModel).cast<OptionModel>();
// set prototype
if ((!S.isNullOrEmpty(datasource)) && (options.isNotEmpty))
{
prototype = WidgetModel.prototypeOf(options[0].element);
options.removeAt(0);
}
// build options
for (var option in options) {
this.options.add(option);
}
// Set selected option
setData();
}