deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement xml)
{
// deserialize
super.deserialize(xml);
// properties
oncomplete = Xml.get(node: xml, tag: 'oncomplete');
selectedcolor = Xml.get(node: xml, tag: 'selectedcolor');
altcolor = Xml.get(node: xml, tag: 'altcolor');
bordercolor = Xml.get(node: xml, tag: 'bordercolor');
selectedbordercolor = Xml.get(node: xml, tag: 'selectedbordercolor');
borderwidth = Xml.get(node: xml, tag: 'borderwidth');
center = Xml.get(node: xml, tag: 'center');
wrap = Xml.get(node: xml, tag: 'wrap');
onclick = Xml.get(node: xml, tag: 'onclick');
postbrokers = Xml.attribute(node: xml, tag: 'postbroker');
///////////////
/* Get Cells */
///////////////
List<TableRowCellModel> models = findChildrenOfExactType(TableRowCellModel).cast<TableRowCellModel>();
for (TableRowCellModel model in models) {
cells.add(model);
}
////////////////////////////
/* Initialize Form Fields */
////////////////////////////
for (TableRowCellModel _ in cells)
{
List<IFormField> fields = findChildrenOfExactType(IFormField).cast<IFormField>();
for (var field in fields) {
if (this.fields == null) this.fields = [];
this.fields!.add(field);
// Register Listener
if (field.dirtyObservable != null) field.dirtyObservable!.registerListener(onDirtyListener);
}
}
////////////////
/* Prototype? */
////////////////
if ((cells.length == 1) && (cells[0].element!.toXmlString().contains("{field}"))) cellprototype = cells[0].element!.copy();
}