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
  editable = Xml.get(node: xml, tag: 'editable');
  oncomplete = Xml.get(node: xml, tag: 'oncomplete');
  onclick = Xml.get(node: xml, tag: 'onclick');
  onInsert = Xml.get(node: xml, tag: 'oninsert');
  onDelete = Xml.get(node: xml, tag: 'ondelete');
  onChange = Xml.get(node: xml, tag: 'onchange');
  postbrokers = Xml.attribute(node: xml, tag: 'post') ?? Xml.attribute(node: xml, tag: 'postbroker');

  // get cells
  cells.addAll(findChildrenOfExactType(TableRowCellModel).cast<TableRowCellModel>());

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