deserialize method

  1. @override
void deserialize(
  1. XmlElement xml
)
override

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);
  }
}