deserialize method

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

Deserializes the FML template elements, attributes and children

Implementation

@override
void deserialize(XmlElement xml)
{
  super.deserialize(xml);

  // properties
  defaultValue = Xml.get(node: xml, tag: 'default');
  meta         = Xml.get(node: xml, tag: 'meta');
  field        = Xml.get(node: xml, tag: 'field');
  mandatory    = Xml.get(node: xml, tag: 'mandatory');
  editable     = Xml.get(node: xml, tag: 'editable');
  post         = Xml.get(node: xml, tag: 'post');
  onchange     = Xml.get(node: xml, tag: 'onchange');

  // Build alarms
  List<AlarmModel> alarms = findChildrenOfExactType(AlarmModel).cast<AlarmModel>();
  alarms.forEach((alarm)
  {
    if (_alarms == null) _alarms = Map<String?, BooleanObservable>();
    this._alarms!.clear();
    String id = alarm.id;
    if (!S.isNullOrEmpty(alarm.value)) _alarms![id] = BooleanObservable(null, value, scope: scope, setter: (value) => touched! ? value : false, listener: _onAlarm);
  });
}