deserialize method
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);
}
}