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

  // properties
  type = Xml.get(node: xml, tag: 'type');
  label = Xml.get(node: xml, tag: 'value') ??
      Xml.get(node: xml, tag: 'label') ??
      Xml.getText(xml);

  debounce = Xml.get(node: xml, tag: 'debounce');
  onclick = Xml.get(node: xml, tag: 'onclick');

  // create text model bound to this label as default
  if (viewableChildren.isEmpty && label != null) {
    var model = TextModel(this, null, value: "{$id.label}", weight: 500, color: type == 'elevated' ? "{THEME.onprimary}" : null);
    (children ??= []).add(model);
  }
}