Abstract
the type of the model's items.
As an example let's see the implementation of ArrayModel
export class ArrayModel<T> extends Model<T> {
private a: Array<T>
constructor(arr: Array<T>) {
super();
this.a = arr;
}
rowCount() {
return this.a.length;
}
rowData(row: number) {
return this.a[row];
}
setRowData(row: number, data: T) {
this.a[row] = data;
this.notifyRowDataChanged(row);
}
push(...values: T[]) {
let size = this.a.length;
Array.prototype.push.apply(this.a, values);
this.notifyRowAdded(size, arguments.length);
}
remove(index: number, size: number) {
let r = this.a.splice(index, size);
this.notifyRowRemoved(index, size);
}
get length(): number {
return this.a.length;
}
values(): IterableIterator<T> {
return this.a.values();
}
entries(): IterableIterator<[number, T]> {
return this.a.entries()
}
}
Protected
notifyProtected
notifyProtected
notifyProtected
notifyAbstract
rowAbstract
rowImplementations of this function must store the provided data parameter in the model at the specified row.
index in range 0..(rowCount() - 1).
new data item to store on the given row index
Model is the interface for feeding dynamic data into
.slint
views.A model is organized like a table with rows of data. The fields of the data type T behave like columns.