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
  oncomplete    = Xml.get(node: xml, tag: 'oncomplete');
  selectedcolor = Xml.get(node: xml, tag: 'selectedcolor');
  altcolor = Xml.get(node: xml, tag: 'altcolor');
  bordercolor   = Xml.get(node: xml, tag: 'bordercolor');
  selectedbordercolor = Xml.get(node: xml, tag: 'selectedbordercolor');
  borderwidth  = Xml.get(node: xml, tag: 'borderwidth');
  center       = Xml.get(node: xml, tag: 'center');
  wrap         = Xml.get(node: xml, tag: 'wrap');
  onclick      = Xml.get(node: xml, tag: 'onclick');
  postbrokers  = Xml.attribute(node: xml, tag: 'postbroker');

  ///////////////
  /* Get Cells */
  ///////////////
  List<TableRowCellModel> models = findChildrenOfExactType(TableRowCellModel).cast<TableRowCellModel>();
  for (TableRowCellModel model in models) {
    cells.add(model);
  }

  ////////////////////////////
  /* Initialize Form Fields */
  ////////////////////////////
  for (TableRowCellModel _ in cells)
  {
    List<IFormField> fields = findChildrenOfExactType(IFormField).cast<IFormField>();
    for (var field in fields) {
      if (this.fields == null) this.fields = [];
      this.fields!.add(field);

      // Register Listener
      if (field.dirtyObservable != null) field.dirtyObservable!.registerListener(onDirtyListener);
    }
  }

  ////////////////
  /* Prototype? */
  ////////////////
  if ((cells.length == 1) && (cells[0].element!.toXmlString().contains("{field}"))) cellprototype = cells[0].element!.copy();
}