deserialize method

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

Deserializes the FML template elements, attributes and children

Implementation

@override
void deserialize(XmlElement xml) {
  busy = false;

  // deserialize
  super.deserialize(xml);

  // properties
  menu = Xml.get(node: xml, tag: 'menu');
  sortable = Xml.get(node: xml, tag: 'sortable');
  resizeable = Xml.get(node: xml, tag: 'resizeable');
  editable = Xml.get(node: xml, tag: 'editable');
  shadow = Xml.get(node: xml, tag: 'shadow');
  showBusy = Xml.get(node: xml, tag: 'showbusy');
  post = Xml.get(node: xml, tag: 'post');
  textSize = Xml.get(node: xml, tag: 'textsize') ??
      Xml.get(node: xml, tag: 'fontsize');
  textColor = Xml.get(node: xml, tag: 'textcolor') ??
      Xml.get(node: xml, tag: 'fontcolor');
  filter = Xml.get(node: xml, tag: 'filter');

  // legacy support
  String? size = "0";
  var paged = toBool(Xml.get(node: xml, tag: 'paged'));
  if (paged != false) {
    size = Xml.get(node: xml, tag: 'pagesize');
    if (size == null && paged == true) size = "20";
  }
  pageSize = size ?? "0";

  // events
  onInsert = Xml.get(node: xml, tag: 'oninsert');
  onDelete = Xml.get(node: xml, tag: 'ondelete');
  onChange = Xml.get(node: xml, tag: 'onchange');

  // set header
  header = findChildOfExactType(TableHeaderModel);
  if (header == null) _buildDefaultHeader();

  // set no rows widget
  noData = findChildOfExactType(NoDataModel);

  // set footer
  footer = findChildOfExactType(TableFooterModel);

  // build initial rows
  _setInitialRows();
}