deserialize method

  1. @override
void deserialize(
  1. XmlElement xml
)
override

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;
  }
}