deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement xml)
{
// deserialize
super.deserialize(xml);
// properties
direction = Xml.get(node: xml, tag: 'direction');
scrollShadows = Xml.get(node: xml, tag: 'scrollshadows');
onpulldown = Xml.get(node: xml, tag: 'onpulldown');
draggable = Xml.get(node: xml, tag: 'draggable');
// clear items
this.items.forEach((_,item) => item.dispose());
this.items.clear();
// Build items
int i = 0;
List<GridItemModel> items = findChildrenOfExactType(GridItemModel).cast<GridItemModel>();
// set prototype
if (!S.isNullOrEmpty(datasource) && items.isNotEmpty)
{
prototype = WidgetModel.prototypeOf(items[0].element);
items.removeAt(0);
}
// build items
for (var item in items) {
this.items[i++] = item;
}
}