new (require("nmodule/webEditors/rc/wb/table/tree/TreeTableModel"))(params)
API Status: Development
A TableModel
backed by a TreeNode
. 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.
Extends:
Parameters:
Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
params |
Object |
Properties
|
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; });
Methods
-
<static> make(params)
-
Create a new
TreeTableModel
instance.Parameters:
Name Type Description params
Object Properties
Name Type Description node
module:nmodule/webEditors/rc/wb/tree/TreeNode the root
node backing this modelReturns:
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>
-
collapse(row)
-
Get child nodes of the given
Row
'sTreeNode
and remove their
correspondingRow
s.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)
-
Get child nodes of the given
Row
'sTreeNode
and insert newRow
s for
each one.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)
-
Get the column in this model matching the given name.
Parameters:
Name Type Description name
String - Inherited From:
Returns:
the matching
column, ornull
if not found -
getColumnIndex(column)
-
Get the index of the given column.
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( [flags])
-
Get the current set of columns, optionally filtered by flags.
Parameters:
Name Type Argument Description flags
Number <optional>
if given, only return columns that have these
flags.Returns:
- Type
- Array.<module:nmodule/webEditors/rc/wb/table/model/Column>
-
getDepth(row)
-
Get the depth of this
Row
'sTreeNode
from theTreeTableModel
's root
node. A direct child of the root will have a depth of 0, etc.Parameters:
Name Type Description row
module:nmodule/webEditors/rc/wb/table/model/Row Returns:
the depth of the
Row
, ornull
if the depth could
not be determined (e.g. theRow
is not actually contained in this model).- Type
- number | null
-
getEditableColumns()
-
Return all columns with the
EDITABLE
flag set.Returns:
- Type
- Array.<module:nmodule/webEditors/rc/wb/table/model/Column>
-
getRootNode()
-
Get the root node backing this
TreeTableModel
.Returns:
-
getRowIndex(row)
-
Get the index of the given row.
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()
-
Get the current set of rows.
- Inherited From:
Returns:
- Type
- Array.<module:nmodule/webEditors/rc/wb/table/model/Row>
-
getValueAt(x, y)
-
Ask the column at the given index for the value from the row at the
given index.Parameters:
Name Type Description x
Number column index
y
Number row index
Returns:
promise to be resolved with the value
- Type
- Promise
-
insertColumns(toInsert [, index])
-
Add new columns to the model. Will trigger a
columnsAdded
tinyevent
.Parameters:
Name Type Argument 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 omittedReturns:
promise to be resolved if the insert is
successful- Type
- Promise
-
insertRows(toInsert [, index])
-
Add new rows to the model. If non-
Row
instances are given, they will be
converted toRow
s usingmakeRow()
.Will trigger a
rowsAdded
tinyevent
.Parameters:
Name Type Argument 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 omittedReturns:
promise to be resolved if the insert is
successful- Type
- Promise
-
isExpandable(row)
-
Return true if the
Row
'sTreeNode
might have child nodes.Parameters:
Name Type Description row
module:nmodule/webEditors/rc/wb/table/tree/TreeNodeRow Returns:
- Type
- boolean
-
isExpanded(row)
-
Return true if the given
Row
is marked as expanded.Parameters:
Name Type Description row
module:nmodule/webEditors/rc/wb/table/model/Row Returns:
- Type
- boolean
-
makeRow(subject)
-
Create a new
Row
instance with aTreeNode
as the subject.Parameters:
Name Type Description subject
module:nmodule/webEditors/rc/wb/tree/TreeNode Returns:
-
removeColumns(toRemove [, end])
-
Remove columns from the model. Will trigger a
columnsRemoved
tinyevent
.Parameters:
Name Type Argument 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 [, end])
-
Remove rows from the model. Will trigger a
rowsRemoved
tinyevent
, with
parameters:rowsRemoved
: the rows that were removedindices
: the original indices of the rows that were removed
Note that
rowsRemoved
andindices
will always be sorted by their
original index in the model's rows, regardless of the order of rows passed
to theremoveRows
function.Parameters:
Name Type Argument 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
-
sort(sortFunction)
-
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.Parameters:
Name Type Description sortFunction
function standard array sort function to receive
twoRow
instances- Inherited From:
Throws:
-
if a non-Function is given
- Type
- Error
-
toggle(row)
-
Collapse the row if it is expanded, and vice versa.
Parameters:
Name Type Description row
module:nmodule/webEditors/rc/wb/table/model/Row Returns:
- Type
- Promise