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
  padding = Xml.get(node: xml, tag: 'padding');
  format = Xml.get(node: xml, tag: S.fromEnum('type'));
  if (format == InputFormats.xml)
  {
    String? xml;
    XmlElement? child;
    if (child == null) child = Xml.getChildElement(node: element!, tag: S.fromEnum('value')!.toUpperCase());
    if (child == null) child = Xml.getChildElement(node: element!, tag: S.fromEnum('value')!.toLowerCase());
    if (child == null) child = Xml.getChildElement(node: element!, tag: S.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 = "";

      ///////////////////
      /* Set the Value */
      ///////////////////
      value = xml;
    }
  }
  else value = Xml.get(node: xml, tag: S.fromEnum('value'));
  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');
  error = Xml.get(node: xml, tag: 'error');
  errortext = Xml.get(node: xml, tag: 'errortext');
  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');
  touched = Xml.get(node: xml, tag: 'touched');
}