getItemModel method

ListItemModel? getItemModel(
  1. int index
)

Implementation

ListItemModel? getItemModel(int index)
{
  // fixed list?
  if (S.isNullOrEmpty(datasource)) return (index < items.length) ? items[index] : null;

  // item model exists?
  if (data == null) return null;
  if ((data.length < (index + 1))) return null;
  if ((items.containsKey(index))) return items[index];
  if ((index < 0) || (data.length < index)) return null;

  // build prototype
  XmlElement? prototype = S.fromPrototype(this.prototype, "${this.id}-$index");

  // build item model
  var model = ListItemModel.fromXml(this, prototype, data: data[index]);

  if (model != null)
  {
    // register listener to dirty field
    if (model.dirtyObservable != null) model.dirtyObservable!.registerListener(onDirtyListener);
    // save model
    items[index] = model;
  }

  return model;
}