deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement? xml) {
if (xml == null) return;
// deserialize
super.deserialize(xml);
// properties
type = Xml.get(node: xml, tag: 'type');
backgroundcolor = Xml.get(node: xml, tag: 'backgroundcolor');
margin = Xml.get(node: xml, tag: 'margin');
title = Xml.get(node: xml, tag: 'title');
selected = Xml.get(node: xml, tag: 'selected');
selectable = Xml.get(node: xml, tag: 'selectable');
onclick = Xml.get(node: xml, tag: 'onclick');
onInsert = Xml.get(node: xml, tag: 'onInsert');
onDelete = Xml.get(node: xml, tag: 'onDelete');
postbrokers = Xml.attribute(node: xml, tag: 'post') ?? Xml.attribute(node: xml, tag: 'postbroker');
// find all descendants
List<dynamic>? fields = findDescendantsOfExactType(null);
for (var field in fields) {
// form field?
if (field is IFormField) {
// Build Fields
if (this.fields == null) this.fields = [];
this.fields!.add(field);
// Register Listener to Dirty Field
field.registerDirtyListener(onDirtyListener);
}
}
}