new (require("nmodule/webEditors/rc/wb/mgr/model/columns/NameMgrColumn"))(params)
API Status: Development
MgrColumn
subclass that allows components in a MgrModel
to be renamed.
Extends:
Parameters:
Name | Type | Description |
---|---|---|
params |
Object |
Methods
-
buildCell(row, dom)
-
Creates the cell's contents by calling
toString
on the row's proposed value
or the current value if there is no proposal. HTML will be safely escaped.Parameters:
Name Type Description row
module:nmodule/webEditors/rc/wb/table/model/Row dom
JQuery - Inherited From:
Returns:
- Type
- Promise
-
coalesceRows(rows)
-
Given the set of rows to be edited, coalesce their values into one single
value to load into an editor.By default, this will simply read the proposed value from the first row.
This is appropriate for a use case where one value will be entered and
written back to all edited components.Parameters:
Name Type Description rows
Array.<module:nmodule/webEditors/rc/wb/table/model/Row> - Inherited From:
Throws:
-
if rows array not given, or values from rows are not all
of the same type - Type
- Error
Returns:
value coalesced from the given rows
- Type
- *
-
commit(value, row [, params])
-
Renames the row's
Component
subject.Parameters:
Name Type Argument Description value
String the new name
row
module:nmodule/webEditors/rc/wb/table/model/Row params
Object <optional>
Properties
Name Type Argument Description batch
baja.comm.Batch <optional>
Returns:
promise to be resolved when the component has
been renamed.- Type
- Promise
-
destroyCell(row, dom)
-
Called when the table is destroying the DOM element built for a cell in this column. This
gives aColumn
implementation the chance to clean up any resources that might have been
created during the earlier call to#buildCell
, perhaps destroying a widget in the cell,
for example. As with#buildCell
, if this completes synchronously and doesn't return a
Promise, the caller must wrap this in a call toPromise.resolve()
.Parameters:
Name Type Description row
module:nmodule/webEditors/rc/wb/table/model/Row dom
jQuery - Inherited From:
Returns:
- Type
- Promise | *
-
getColumnIcon()
-
Return
object.png
.Returns:
- Type
- String
-
getConfigFor(rows)
-
For more than one row, instantiate a DisplayOnlyEditor.
Parameters:
Name Type Description rows
Array.<module:nmodule/webEditors/rc/wb/table/model/Row> Returns:
- Type
- Object
-
getFlags()
-
Get the flags set on this column.
- Inherited From:
Returns:
- Type
- Number
-
getName()
-
Get the column name or
null
if none was given.- Inherited From:
Returns:
- Type
- String
-
getProposedValueFor(row)
-
Get the currently proposed value for the given row. If no value proposed
yet, will return the actual column value (getValueFor
).Parameters:
Name Type Description row
module:nmodule/webEditors/rc/wb/table/model/Row Returns:
- Type
- *
-
getValueFor(row)
-
Returns the row's
Component
subject's slot name.Parameters:
Name Type Description row
module:nmodule/webEditors/rc/wb/table/model/Row Returns:
- Type
- String
-
hasFlags(flags)
-
Return true if the column has all of the given flags.
Parameters:
Name Type Description flags
Number flags to check for
- Inherited From:
Returns:
- Type
- Boolean
-
isEditable()
-
Return true if the column is editable.
- Inherited From:
Returns:
- Type
- Boolean
-
isEditorSuitable(editor, rows)
-
We can't set multiple components to the same name. So if editing more than
one row, we need the editor to be a DisplayOnlyEditor.Parameters:
Name Type Description editor
module:nmodule/webEditors/rc/fe/baja/BaseEditor rows
Array.<module:nmodule/webEditors/rc/wb/table/model/Row> Returns:
true if more than one row and it's a
DisplayOnlyEditor, or if it's only one row and it's editable- Type
- boolean
-
isHidable()
-
Return true if the column should available in the table's show/hide context menu.
Defaults to true.- Inherited From:
Returns:
- Type
- Boolean
-
isReadonly()
-
Return true if the column is readonly.
- Inherited From:
Returns:
- Type
- Boolean
-
isSortable()
-
Returns a boolean indicating whether the column should not be sortable via the table headings.
Defaults to true.- Inherited From:
Returns:
- Type
- Boolean
-
isUnseen()
-
Return true if the column is unseen.
- Inherited From:
Returns:
- Type
- Boolean
-
mgrValidate(model, data [, params])
-
Allows this column to validate proposed changes.
Parameters:
Name Type Argument Description model
module:nmodule/webEditors/rc/wb/mgr/model/MgrModel the model to which we're about to apply changes.
data
Array an array of proposed changes to this column, one per
row in theMgrModel
. If a value in this array is null, no change has
been proposed for that row.params
Object <optional>
Properties
Name Type Argument Description editor
module:nmodule/webEditors/rc/fe/baja/BaseEditor <optional>
the editor from which the proposed values were read. Note that the editor
may have been used to edit other rows, so the editor's current value may
not match the proposed new values.- Inherited From:
Returns:
promise that resolves by default
- Type
- Promise
Example
Validating this column may require that I examine the changes I'm about to make to other columns as well.
MyMgrColumn.prototype.mgrValidate = function (model, data, params) { var that = this, rows = model.getRows(), otherColumn = model.getColumn('otherColumn'); //search through all MgrModel rows, and check to see that my proposed //change is compatible with the proposed change to another column. //say, i'm a "password" column, and the other column is a "password //scheme" column - i need to make sure that the proposed password is //considered valid by the proposed password scheme. for (var i = 0; i < rows.length; i++) { var row = rows[i], myValue = data[i], otherValue = otherColumn.getProposedValueFor(row); if (myValue === null) { //no changes proposed for this row, so nothing to validate. } if (!isCompatible(myValue, otherValue)) { return Promise.reject(new Error('incompatible values')); } } };
-
propose(value, row)
-
Should read the value and "tentatively" apply it to the
selected row. In most cases this will be setting some temporary data
for display-only purposes.By default, will set some temporary data on the row using the column's
name as a key.Parameters:
Name Type Description value
* row
module:nmodule/webEditors/rc/wb/table/model/Row - Inherited From:
Returns:
- Type
- Promise
-
setEditable(editable)
-
Set or unset the column's
EDITABLE
flag. Emits aflagsChanged
event.Parameters:
Name Type Description editable
boolean - Inherited From:
-
setFlags(flags)
-
Set the column's flags.
Parameters:
Name Type Description flags
Number - Inherited From:
Throws:
-
if a non-Number given
- Type
- Error
-
setHidable(hidable)
-
Set or unset whether the column should be allowed to be hidden or shown by the table's
show/hide context menu.Parameters:
Name Type Description hidable
boolean - Inherited From:
-
setReadonly(readonly)
-
Set or unset the column's
READONLY
flag. Emits aflagsChanged
event.Parameters:
Name Type Description readonly
boolean - Inherited From:
-
setSortable(sortable)
-
Set or unset whether the column should be allowed to be sorted by the table heading.
Parameters:
Name Type Description sortable
boolean - Inherited From:
-
setUnseen(unseen)
-
Set or unset the column's
UNSEEN
flag. Emits aflagsChanged
event.Parameters:
Name Type Description unseen
boolean - Inherited From:
-
toDisplayName()
-
Returns
name
from webEditors lexicon.Returns:
- Type
- String