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');
draggable = Xml.get(node: xml, tag: 'draggable');
scrollShadows = Xml.get(node: xml, tag: 'scrollshadows');
scrollButtons = Xml.get(node: xml, tag: 'scrollbuttons');
collapsed = Xml.get(node: xml, tag: 'collapsed');
onpulldown = Xml.get(node: xml, tag: 'onpulldown');
reverse = Xml.get(node: xml, tag: 'reverse');
// clear items
this.items.forEach((_,item) => item.dispose());
this.items.clear();
// Process Items
int i = 0;
List<ListItemModel> items = findChildrenOfExactType(ListItemModel).cast<ListItemModel>();
// 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;
}
}