deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement xml)
{
// deserialize
super.deserialize(xml);
// properties
pager = Xml.get(node: xml, tag: 'pager');
// build pages
List<PageModel> pages = findChildrenOfExactType(PageModel).cast<PageModel>();
// set prototype
if ((!S.isNullOrEmpty(datasource)) && (pages.isNotEmpty))
{
prototype = WidgetModel.prototypeOf(pages[0].element);
pages.removeAt(0);
}
// build items
for (var page in pages) {
this.pages.add(page);
}
if (pages.isEmpty)
{
XmlDocument missingXml = XmlDocument.parse('<PAGE><CENTER><TEXT value="Missing <Page /> Element" /></CENTER></PAGE>');
var page = PageModel.fromXml(this, missingXml.rootElement);
if (page != null) this.pages.add(page);
}
currentpage = Xml.get(node: xml, tag: 'initialpage') ?? 1;
}