new (require("nmodule/webEditors/rc/wb/table/model/TableModel"))(paramsopt)
- Description:
API Status: Development
Table Model, for use in backing a
Tablewidget or similar.
- Source:
- Mixes In:
- tinyevents
- module:nmodule/webEditors/rc/mixin/DataMixin
Parameters:
| Name | Type | Attributes | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
params |
Object |
<optional> |
Properties
|
Methods
clearRows() → {Promise}
- Description:
Remove all rows from the model.
Will trigger a
rowsRemovedtinyevent, with
parameters:rowsRemoved: the rows that were removedindices: the original indices of the rows that were removed
- Source:
Returns:
- Type
- Promise
getColumn(name) → {module:nmodule/webEditors/rc/wb/table/model/Column}
- Description:
Get the column in this model matching the given name.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
name |
String |
Returns:
the matching
column, or null if not found
getColumnIndex(column) → {number}
- Description:
Get the index of the given column.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
column |
module:nmodule/webEditors/rc/wb/table/model/Column |
Returns:
the column's index, or -1 if not found
- Type
- number
getColumns(flagsopt) → {Array.<module:nmodule/webEditors/rc/wb/table/model/Column>}
- Description:
Get the current set of columns, optionally filtered by flags.
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
flags |
Number |
<optional> |
if given, only return columns that have these |
Returns:
- Type
- Array.<module:nmodule/webEditors/rc/wb/table/model/Column>
getEditableColumns() → {Array.<module:nmodule/webEditors/rc/wb/table/model/Column>}
- Description:
Return all columns with the
EDITABLEflag set.
- Source:
Returns:
- Type
- Array.<module:nmodule/webEditors/rc/wb/table/model/Column>
getRow(i) → {module:nmodule/webEditors/rc/wb/table/model/Row|undefined}
- Description:
Get the row at the given index.
- Source:
- Since:
- Niagara 4.12
Parameters:
| Name | Type | Description |
|---|---|---|
i |
number |
Returns:
the row at this index, or
undefined if not present
- Type
- module:nmodule/webEditors/rc/wb/table/model/Row | undefined
getRowCount() → {Number}
- Description:
Get the number of rows in the TableModel.
- Source:
- Since:
- Niagara 4.12
Returns:
- Type
- Number
getRowIndex(row) → {number}
- Description:
Get the index of the given row. If a filter is applied, returns the index of the row among the
currently filtered rows.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
row |
module:nmodule/webEditors/rc/wb/table/model/Row |
Returns:
the row's index, or -1 if not found
- Type
- number
getRows() → {Array.<module:nmodule/webEditors/rc/wb/table/model/Row>}
- Description:
Get the current set of rows.
- Source:
Returns:
- Type
- Array.<module:nmodule/webEditors/rc/wb/table/model/Row>
getValueAt(x, y) → {Promise}
- Description:
Ask the column at the given index for the value from the row at the
given index.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
x |
Number | column index |
y |
Number | row index |
Returns:
promise to be resolved with the value
- Type
- Promise
insertColumns(toInsert, indexopt) → {Promise}
- Description:
Add new columns to the model. Will trigger a
columnsAddedtinyevent.
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
toInsert |
Array.<module:nmodule/webEditors/rc/wb/table/model/Column> | ||
index |
Number |
<optional> |
index to insert the columns; will append to the |
Returns:
promise to be resolved if the insert is
successful
- Type
- Promise
insertRows(toInsert, indexopt) → {Promise}
- Description:
Add new rows to the model. If non-
Rowinstances are given, they will be
converted toRows usingmakeRow().If a row filter has been set to a non-null function the index passed to this
function will be relative to the resulting filtered array returned from getRows().Will trigger a
rowsAddedtinyevent.
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
toInsert |
Array.<(module:nmodule/webEditors/rc/wb/table/model/Row|*)> | ||
index |
Number |
<optional> |
index to insert the rows; will append to the |
Returns:
promise to be resolved if the insert is
successful
- Type
- Promise
makeRow(subject) → {module:nmodule/webEditors/rc/wb/table/model/Row}
- Description:
Instantiate a new row for the given subject.
insertRowswill delegate
to this if values are passed in rather thanRowinstances. Override
as necessary.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
subject |
* |
Returns:
removeColumns(toRemove, endopt) → {Promise}
- Description:
Remove columns from the model. Will trigger a
columnsRemovedtinyevent.
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
toRemove |
Array.<module:nmodule/webEditors/rc/wb/table/model/Column> | Number | the columns to remove; or, start index |
|
end |
Number |
<optional> |
end index |
Returns:
promise to be resolved if the remove is
successful
- Type
- Promise
removeRows(toRemove, endopt) → {Promise}
- Description:
Remove rows from the model. Will trigger a
rowsRemovedtinyevent, with
parameters:rowsRemoved: the rows that were removedindices: the original indices of the rows that were removed
If a row filter has been set to a non-null function any indices passed to this
function will be relative to the resulting filtered array returned from getRows().Note that
rowsRemovedandindiceswill always be sorted by their
original index in the model's rows, regardless of the order of rows passed
to theremoveRowsfunction.
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
toRemove |
Array.<module:nmodule/webEditors/rc/wb/table/model/Row> | Number | the rows to remove; or, start index |
|
end |
<optional> |
end index |
Returns:
promise to be resolved if the remove is
successful
- Type
- Promise
setRowFilter(rowFilterFunction) → {Promise}
- Description:
Filter the table's rows according to the given filter function. Setting
therowFilterFunctiontonullwill remove the current filter and
reset the table model to display all rows.Will trigger a
rowsFilteredtinyevent.Remember that
Array#filteris synchronous, so if the filter needs to use
any data that is asynchronously retrieved, the async work must be performed
before the filter so that the filter function can work synchronously.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
rowFilterFunction |
function | standard array filter function |
Throws:
-
if a non-Function is given
- Type
- Error
Returns:
to be resolved after any necessary post-filtering work (this does not make
the filtering itself asynchronous).
- Type
- Promise
sort(sortFunction) → {Promise}
- Description:
Sort the table's rows according to the given sort function. Emits a
rowsReorderedevent.Remember that
Array#sortis synchronous, so if the sort needs to use
any data that is asynchronously retrieved, the async work must be performed
before the sort so that the sort function can work synchronously.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
sortFunction |
function | standard array sort function to receive |
Throws:
-
if a non-Function is given
- Type
- Error
Returns:
to be resolved after any necessary post-sorting work (this does not make
the sorting itself asynchronous).
- Type
- Promise