deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement? xml) {
if (xml == null) return;
// deserialize
super.deserialize(xml);
// Properties
var label = Xml.get(node: xml, tag: 'label');
var value = Xml.get(node: xml, tag: 'value');
// <OPTION>xxx</OPTION> style
if (label == null && viewableChildren.isEmpty) {
var text = Xml.getText(xml);
if (!isNullOrEmpty(text)) label = text;
}
// label specified but not value
if (value == null && label != null) value = label;
// set option type
_type = Xml.get(node: xml, tag: 'type')?.toLowerCase().trim();
// set label and value
this.label = label;
this.value = value;
// add text model
if (viewableChildren.isEmpty)
{
children ??= [];
children!.add(TextModel(this,null,value: label ?? value));
}
}