deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement xml) {
// deserialize
super.deserialize(xml);
// properties
title = Xml.get(node: xml, tag: 'title');
if (_title == null) {
title = Xml.get(node: xml, tag: 'sort')
?.split(",")[0]
.replaceFirst(RegExp('data.', caseSensitive: false), "");
}
if (_title == null) {
TextModel? text = findChildOfExactType(TextModel);
title = text?.value;
}
// field - used to drive simple tables for performance
field = Xml.get(node: xml, tag: 'field') ?? title;
//type - denotes the field type. used for sorting
type = Xml.get(node: xml, tag: 'type');
// context menu
menu = Xml.get(node: xml, tag: 'menu');
sortable = Xml.get(node: xml, tag: 'sortable');
resizeable = Xml.get(node: xml, tag: 'resizeable');
editable = Xml.get(node: xml, tag: 'editable');
filter = Xml.get(node: xml, tag: 'filter');
onChange = Xml.get(node: xml, tag: 'onchange');
// build default cell
if (children?.isEmpty ?? true) _buildDefaultBody();
}