module:nmodule/webEditors/rc/wb/table/model/ComponentTableModel

module:nmodule/webEditors/rc/wb/table/model/ComponentTableModel

new (require("nmodule/webEditors/rc/wb/table/model/ComponentTableModel"))(params)

Description:
  • API Status: Development

    Table model where each row in the table represents a Component.

    A ComponentTableModel is backed by a ComponentSource, which provides
    the list of Components to build into table rows.

Source:
Extends:
Parameters:
Name Type Description
params Object | baja.Component

parameters object, or a Component
if no parameters required.

Properties
Name Type Attributes Default Description
componentSource baja.Component | module:nmodule/webEditors/rc/wb/table/model/ComponentSource

the source of components to build into table rows.
If a Component is given it will just be wrapped in a ComponentSource
with no parameters.

columns Array.<module:nmodule/webEditors/rc/wb/table/model/Column>
rows Array.<module:nmodule/webEditors/rc/wb/table/model/Row> | Array.<baja.Component> <optional>
params.componentSource.getComponents()

optionally,
specify the TableModel's initial set of rows. By default, the rows will be all the components
contained within the ComponentSource.

Extends

Methods

clearRows() → {Promise}

Description:
  • Remove all rows from the model.

    Will trigger a rowsRemoved tinyevent, with
    parameters:

    • rowsRemoved: the rows that were removed
    • indices: the original indices of the rows that were removed
Source:
Inherited From:
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:
Inherited From:
Parameters:
Name Type Description
name String
Returns:

the matching
column, or null if not found

Type
module:nmodule/webEditors/rc/wb/table/model/Column

getColumnIndex(column) → {number}

Description:
  • Get the index of the given column.

Source:
Inherited From:
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:
Inherited From:
Parameters:
Name Type Attributes Description
flags Number <optional>

if given, only return columns that have these
flags.

Returns:
Type
Array.<module:nmodule/webEditors/rc/wb/table/model/Column>

getComponentSource() → {module:nmodule/webEditors/rc/wb/table/model/ComponentSource}

Description:
  • Get the ComponentSource backing this table model.

Source:
Returns:
Type
module:nmodule/webEditors/rc/wb/table/model/ComponentSource

getEditableColumns() → {Array.<module:nmodule/webEditors/rc/wb/table/model/Column>}

Description:
  • Return all columns with the EDITABLE flag set.

Source:
Inherited From:
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
Inherited From:
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
Inherited From:
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:
Inherited From:
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:
Inherited From:
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:
Inherited From:
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 columnsAdded tinyevent.

Source:
Inherited From:
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
end if omitted

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-Row instances are given, they will be
    converted to Rows using makeRow().

    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 rowsAdded tinyevent.

Source:
Inherited From:
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
end if omitted

Returns:

promise to be resolved if the insert is
successful

Type
Promise

makeRow(comp) → {module:nmodule/webEditors/rc/wb/table/model/Row}

Description:
  • Ensures that the row's icon is set to the component's icon.

Source:
Since:
  • Niagara 4.14
Overrides:
Parameters:
Name Type Description
comp baja.Component | module:nmodule/webEditors/rc/wb/table/model/Row
Returns:
Type
module:nmodule/webEditors/rc/wb/table/model/Row

removeColumns(toRemove, endopt) → {Promise}

Description:
  • Remove columns from the model. Will trigger a columnsRemoved tinyevent.

Source:
Inherited From:
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 rowsRemoved tinyevent, with
    parameters:

    • rowsRemoved: the rows that were removed
    • indices: 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 rowsRemoved and indices will always be sorted by their
    original index in the model's rows, regardless of the order of rows passed
    to the removeRows function.

Source:
Inherited From:
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
    the rowFilterFunction to null will remove the current filter and
    reset the table model to display all rows.

    Will trigger a rowsFiltered tinyevent.

    Remember that Array#filter is 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:
Inherited From:
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
    rowsReordered event.

    Remember that Array#sort is 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:
Inherited From:
Parameters:
Name Type Description
sortFunction function

standard array sort function to receive
two Row instances

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

(inner) exec(updates) → {Promise}

Description:
  • This throttles the addition / removal of rows in the table.

Source:
Parameters:
Name Type Description
updates Array.<Object>

where each object has an add and remove array that
contain the components to add or remove

Returns:

resolves when all rows have been added / removed

Type
Promise