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');
  error = Xml.get(node: xml, tag: 'error');
  errortext = Xml.get(node: xml, tag: 'errortext');
  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.clear();
  for (var alarm in alarms)
  {
    _alarms[alarm.id] = alarm;

    //register a listener to always throw the alarm state when the value of the alarm changes if the alarm type is 'all'
    alarm.seterror?.registerListener(onAlarmChange);
  }
}