deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement xml) {
// deserialize
super.deserialize(xml);
String? textvalue = Xml.get(node: xml, tag: 'value');
textvalue ??= Xml.get(node: xml, tag: 'label');
textvalue ??= Xml.getText(xml);
// properties
shadowcolor = Xml.get(node: xml, tag: 'shadowcolor');
elevation = Xml.get(node: xml, tag: 'elevation');
shadowx = Xml.get(node: xml, tag: 'shadowx');
shadowy = Xml.get(node: xml, tag: 'shadowy');
font = Xml.get(node: xml, tag: 'font');
weight = Xml.get(node: xml, tag: 'weight');
bold = Xml.get(node: xml, tag: 'bold');
italic = Xml.get(node: xml, tag: 'italic');
theme = Xml.get(node: xml, tag: 'theme');
decoration = Xml.get(node: xml, tag: 'decoration');
decorationcolor = Xml.get(node: xml, tag: 'decorationcolor');
decorationstyle = Xml.get(node: xml, tag: 'decorationstyle');
decorationweight = Xml.get(node: xml, tag: 'decorationweight');
wordspace = Xml.get(node: xml, tag: 'wordspace');
letterspace = Xml.get(node: xml, tag: 'letterspace');
lineheight = Xml.get(node: xml, tag: 'lineheight');
overflow = Xml.get(node: xml, tag: 'overflow');
style = Xml.get(node: xml, tag: 'style');
raw = Xml.get(node: xml, tag: 'raw');
selectable = Xml.get(node: xml, tag: 'selectable');
// build spans
List<TextModel> textSpans =
findChildrenOfExactType(TextModel).cast<TextModel>();
for (var text in textSpans) {
spanTextValues.add(text);
}
}