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

  // set properties
  format = Xml.get(node: xml, tag: fromEnum('type'));
  if (formatType == "xml") {
    String? xml;
    XmlElement? child;
    child ??= Xml.getChildElement(
        node: element!, tag: fromEnum('value')!.toUpperCase());
    child ??= Xml.getChildElement(
        node: element!, tag: fromEnum('value')!.toLowerCase());
    child ??= Xml.getChildElement(node: element!, tag: fromEnum('value')!);
    if (child != null) xml = child.innerXml;
    if (xml != null) {
      // This Defeats Binding
      XmlDocument? document = Xml.tryParse(xml, silent: true);
      if (document != null) value = "";
      value = xml;
    }
  } else {
    value = Xml.get(node: xml, tag: fromEnum('value'));
  }

  // set validator
  setValidator(Xml.get(node: xml, tag: 'errortext'));

  hint = Xml.get(node: xml, tag: 'hint') ?? "";
  size = Xml.get(node: xml, tag: 'size');
  weight = Xml.get(node: xml, tag: 'weight');
  style = Xml.get(node: xml, tag: 'style');
  lines = Xml.get(node: xml, tag: 'lines');
  length = Xml.get(node: xml, tag: 'length');
  obscure = Xml.get(node: xml, tag: 'obscure');
  clear = Xml.get(node: xml, tag: 'clear');
  maxlines = Xml.get(node: xml, tag: 'maxlines');
  expand = Xml.get(node: xml, tag: 'expand');
  onfocuslost = Xml.get(node: xml, tag: 'onfocuslost');
  icon = Xml.get(node: xml, tag: 'icon');
  keyboardType = Xml.get(node: xml, tag: 'keyboardtype');
  keyboardInput = Xml.get(node: xml, tag: 'keyboardinput');
  allow = Xml.get(node: xml, tag: 'allow');
  deny = Xml.get(node: xml, tag: 'deny');
  capitalization = Xml.get(node: xml, tag: 'case');
  dense = Xml.get(node: xml, tag: 'dense');
  border = Xml.get(node: xml, tag: 'border');
  radius = Xml.get(node: xml, tag: 'radius');
  borderColor = Xml.get(node: xml, tag: 'bordercolor');
  borderWidth = Xml.get(node: xml, tag: 'borderwidth');
  textcolor = Xml.get(node: xml, tag: 'textcolor');
  mask = Xml.get(node: xml, tag: 'mask');
}