new (require("nmodule/webEditors/rc/wb/table/tree/TreeTableModel"))(params)
- Description:
API Status: Development
A
TableModelbacked by aTreeNode. Each Row in the table must also be
backed by a TreeNode.You should not typically call this constructor directly - use the
.make()
method instead.
- Source:
Extends:
Example
//when deciding which columns to use in the model, remember that rows
//will return the actual values via getSubject(), so ordinary
//Columns/MgrColumns can be used. custom column types can call
//row.getTreeNode() if necessary.
TreeTableModel.make({
columns: [
new PropertyMgrColumn('prop1'),
new PropertyMgrColumn('prop2')
]
});
//when inserting, values must be TreeNodes.
treeTableModel.insertRows(components.map(function (comp) {
var node = new TreeNode('component:' + comp.getName());
node.value = function () { return comp; };
return node;
});
Parameters:
| Name | Type | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
params |
Object |
Properties
|
Extends
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:
- Inherited From:
Returns:
- Type
- Promise
collapse(row) → {Promise.<Array.<module:nmodule/webEditors/rc/wb/table/model/Row>>}
- Description:
Get child nodes of the given
Row'sTreeNodeand remove their
correspondingRows.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
row |
module:nmodule/webEditors/rc/wb/table/tree/TreeNodeRow |
Returns:
promise to be resolved with an array of the rows that were removed
- Type
- Promise.<Array.<module:nmodule/webEditors/rc/wb/table/model/Row>>
expand(row) → {Promise.<Array.<module:nmodule/webEditors/rc/wb/table/tree/TreeNodeRow>>}
- Description:
Get child nodes of the given
Row'sTreeNodeand insert newRows for
each one.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
row |
module:nmodule/webEditors/rc/wb/table/tree/TreeNodeRow |
Returns:
promise to be resolved with an array of the inserted rows
- Type
- Promise.<Array.<module:nmodule/webEditors/rc/wb/table/tree/TreeNodeRow>>
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
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 |
Returns:
- Type
- Array.<module:nmodule/webEditors/rc/wb/table/model/Column>
getDepth(row) → {number|null}
- Description:
Get the depth of this
Row'sTreeNodefrom theTreeTableModel's root
node. A direct child of the root will have a depth of 0, etc.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
row |
module:nmodule/webEditors/rc/wb/table/model/Row |
Returns:
the depth of the Row, or null if the depth could
not be determined (e.g. the Row is not actually contained in this model).
- Type
- number | null
getEditableColumns() → {Array.<module:nmodule/webEditors/rc/wb/table/model/Column>}
- Description:
Return all columns with the
EDITABLEflag set.
- Source:
- Inherited From:
Returns:
- Type
- Array.<module:nmodule/webEditors/rc/wb/table/model/Column>
getRootNode() → {module:nmodule/webEditors/rc/wb/tree/TreeNode}
- Description:
Get the root node backing this
TreeTableModel.
- Source:
- Deprecated:
- as of Niagara 4.14. TreeTableModel has always supported adding freestanding nodes that do not all belong to the same root node.
Returns:
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
columnsAddedtinyevent.
- 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 |
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:
- 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 |
Returns:
promise to be resolved if the insert is
successful
- Type
- Promise
isExpandable(row) → {boolean}
- Description:
Return true if the
Row'sTreeNodemight have child nodes.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
row |
module:nmodule/webEditors/rc/wb/table/tree/TreeNodeRow |
Returns:
- Type
- boolean
isExpanded(row) → {boolean}
- Description:
Return true if the given
Rowis marked as expanded.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
row |
module:nmodule/webEditors/rc/wb/table/model/Row |
Returns:
- Type
- boolean
makeRow(subject) → {module:nmodule/webEditors/rc/wb/table/tree/TreeNodeRow}
- Description:
Create a new
Rowinstance with aTreeNodeas the subject.
- Source:
- Overrides:
Parameters:
| Name | Type | Description |
|---|---|---|
subject |
module:nmodule/webEditors/rc/wb/tree/TreeNode |
Returns:
removeColumns(toRemove, endopt) → {Promise}
- Description:
Remove columns from the model. Will trigger a
columnsRemovedtinyevent.
- 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
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:
- 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
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:
- 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
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:
- Inherited From:
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
toggle(row) → {Promise}
- Description:
Collapse the row if it is expanded, and vice versa.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
row |
module:nmodule/webEditors/rc/wb/table/model/Row |
Returns:
- Type
- Promise
(static) make(params) → {Promise.<module:nmodule/webEditors/rc/wb/table/tree/TreeTableModel>}
- Description:
Create a new
TreeTableModelinstance.
- Source:
Parameters:
| Name | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
params |
Object |
Properties
|
Returns:
promise to be resolved with the new TreeTableModel instance, containing
one row per child node of the root node passed in
- Type
- Promise.<module:nmodule/webEditors/rc/wb/table/tree/TreeTableModel>