deserialize method

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

Deserializes the FML template elements, attributes and children

Implementation

@override
void deserialize(XmlElement? xml) {
  if (xml == null) return;

  // deserialize
  super.deserialize(xml);

  // properties
  title = Xml.get(node: xml, tag: 'title');
  selected = Xml.get(node: xml, tag: 'selected');
  selectable = Xml.get(node: xml, tag: 'selectable');
  onClick = Xml.get(node: xml, tag: 'onclick');
  onInsert = Xml.get(node: xml, tag: 'oninsert');
  onDelete = Xml.get(node: xml, tag: 'ondelete');
  postbrokers = Xml.attribute(node: xml, tag: 'post') ?? Xml.attribute(node: xml, tag: 'postbroker');

  // list item is a form?
  if (_postbrokers != null) {

    // build form fields and register dirty listeners to each
    fields = FormModel.formFieldsOf(this);

    // Register Listener to Dirty Field
    for (var field in fields ?? []) {
      field.registerDirtyListener(onDirtyListener);
    }
  }
}