deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement? xml)
{
if (xml == null) return;
// deserialize
super.deserialize(xml);
// Label
String? label = Xml.attribute(node: xml, tag: 'label');
if (label == null)
{
XmlElement? node = Xml.getElement(node: xml, tag: 'label');
if (node != null)
{
if (Xml.hasChildElements(node))
this.label = RowModel.fromXml(this, node);
else this.label = TextModel(this, null, value: Xml.getText(node));
}
}
else this.label = TextModel(this, null, value: label);
// Empty?
if (this.label == null)
{
label = Xml.getText(xml);
if (label != null)
this.label = TextModel(this, null, value: label);
}
if (this.label == null && this.labelValue == null) {
this.labelValue = Xml.get(node: xml, tag: 'value');
this.label = TextModel(this, null, value: this.labelValue);
}
// Value
String? value = Xml.get(node: xml, tag: 'value');
if (value == null) {
this.value = label;
labelValue = label;
}
else this.value = value;
labelValue = label;
tags = Xml.get(node: xml, tag: 'tags');
}