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
index = Xml.get(node: xml, tag: 'index');
showBar = Xml.get(node: xml, tag: 'bar') ?? Xml.get(node: xml, tag: 'tabbar');
showMenu = Xml.get(node: xml, tag: 'menu') ?? Xml.get(node: xml, tag: 'tabbutton');
allowback = Xml.get(node: xml, tag: 'allowback');
// create Tabs
var tabs = findChildrenOfExactType(TabModel).cast<TabModel>();
// set prototype
if (!isNullOrEmpty(datasource) && tabs.isNotEmpty) {
// set prototype
prototype = prototypeOf(tabs.first.element);
tabs.removeAt(0);
}
// add remaining children
for (var tab in tabs) {
this.tabs.add(tab);
}
// remove tabs
removeChildrenOfExactType(TabModel);
}