Caplin Trader 5.1.0

Class: module:ct-grid/DataProviderRowModel

module:ct-grid/DataProviderRowModel(columnModel, dataProvider)

The DataProviderRowModel is the default implementation of GridRowModel, and attempts to perform all the generic tasks that a GridRowModel can provide, but delegates all the implementation specific jobs of module:ct-grid/GridRowModel to the GridDataProvider it is associated with.

The DataProviderRowModel provides the following functionality:

  • caching of data from the underlying GridDataProvider
  • sorting support for non-paging GridDataProvider instances that do not support it themselves (not yet implemented)
  • filtering support for non-paging GridDataProvider instances that do not support it themselves (not yet implemented)
  • conversion of events on the GridColumnModel to method calls on the GridDataProvider, including conversion of many separate filter calls into a single call containing all the information.

The DataProviderRowModel defines a model for acquiring row data and for listening to row model events.

Constructor

new module:ct-grid/DataProviderRowModel(columnModel, dataProvider)

Constructs a DataProviderRowModel.

Parameters:
Name Type Description
columnModel module:ct-grid/GridColumnModel | GridColumnModel

The column model this row model is associated with — necessary for listening to sorting and filtering events on the column model.

dataProvider module:ct-grid/GridDataProvider | GridDataProvider

The data provider instance that will do the actual work of providing the data that will be contained by the row model.

Implements:

Members

(static, readonly) OBJECT_DATA_TIMEOUT :int

The amount of time to wait for each object before firing module:ct-grid/GridRowModelListener#onAllDataReceived

Type:
  • int

Methods

addRow(sSubject)

Adds a row to the GridRowModel.

Parameters:
Name Type Description
sSubject String

The RTTP subject identifier (e.g. /FX/EURUSD) for the new row.

Implements:

addRowModelListener(oRowModelListener)

Adds a listener to the row model, to be communicated of all row model events.

Parameters:
Name Type Description
oRowModelListener module:ct-grid/GridRowModelListener

The listener to add.

Implements:
See:

canReceive()

Implements:
See:

canReceiveMultipleObjects()

Implements:
See:

canReceiveObjects()

Implements:
See:

clearFilterExpression(sFilterNameopt)

Removes the named filter expression from the row model.

The filter name parameter is optional. If no parameter is passed then the 'default' parameter expression will be removed.

Parameters:
Name Type Attributes Description
sFilterName String <optional>

The name of the filter expression to remove.

Implements:

clearGroupByField()

Removes any grouping from the grid row model.

Implements:

clearSortRule()

Removes any sorting from the grid row model.

Implements:

getAllFilterExpressions()

Returns a map of all filter expressions.

The returned map should not be modified by external clients as it is may be used internally by the row model class.

Implements:

getFilterExpression(sFilterNameopt) → {module:ct-grid/filter/FilterExpression}

Returns the named filter expression.

The filter name parameter is optional. If no parameter is passed then the 'default' parameter expression will be returned.

Parameters:
Name Type Attributes Description
sFilterName String <optional>

The name of the filter expression to remove.

Implements:
Returns:

the filter with the specified name.

Type
module:ct-grid/filter/FilterExpression

getGroupByField() → {String}

Get the field, if one has been set, that is used to group the rows contained within row model.

Implements:
Returns:

a String, if one exists, or null otherwise.

Type
String

getIndexBySubject(sSubject)

Return the index of a subject.

Parameters:
Name Type Description
sSubject String

The RTTP subject identifier (e.g. /FX/EURUSD) for the row.

Implements:

getLastReceiveFailureMessage()

Implements:
See:

getPermissionKey() → {module:ct-services/security/PermissionKey}

Returns a tuple containing the permissioning search query parameters that can be used to determine whether the user has the available permissions to view the data contained within this row model.

Row models whose data is not permissioned do not need to return a permissioning key, and may instead return null.

Implements:
See:
Returns:

the permissioning key tuple, or null

Type
module:ct-services/security/PermissionKey

getRowData(nIndex) → {Object}

Returns the row data record at the specified index.

Parameters:
Name Type Description
nIndex int

The index of the specified row.

Implements:
Returns:

the row data for the specified index.

Type
Object

getRowRangeSize()

Returns the size of the row range that is set with the setRowRange method.

Implements:

getSerializedState() → {String}

Invoked when the grid is saved.

Implements:
Returns:

An XML representation of the current state of this GridRowModel. This may be an empty string if the row model was configured by a parent grid definition.

Type
String

getSize() → {int}

Returns the number of rows available — not the number of rows that are currently visible.

Implements:
Returns:

The number of rows available

Type
int

getSortRule() → {module:ct-grid/sort/SortRule}

Get the rule, if one exists, that is used to sort the data within the row model.

Implements:
Returns:

a SortRule, if one exists, or null otherwise.

Type
module:ct-grid/sort/SortRule

getStartIndex() → {int}

Returns the start index of the row model which can be used to see how many rows have been scrolled.

Implements:
Returns:

The start index

Type
int

getSubjectId(nIndex) → {String}

Returns the RTTP subject identifier for the row at the specified index.

Row models whose rows correspond to objects that can be requested from a Liberator should use this method to make that information available — this may be true even for row models where the data itself does not come from a Liberator (e.g. a custom web-service) provided the row data corresponds to requestable objects within the Liberator.

Some decorators (such as the module:ct-grid/decorator/DragDecorator require this information in order to allow dragging & dropping of row data into trade panels or custom grids. Row models whose data does not correspond to requestable objects within the Liberator can instead return null.

Parameters:
Name Type Description
nIndex int

The index of the row being queried.

Implements:
Returns:

the RTTP subject identifier (e.g. /FX/EURUSD) for the given row, or null otherwise.

Type
String

getSubjects()

Implements:
Deprecated:
  • Yes

getSuccessMessage()

See:

getTransformMode() → {String}

Get the transform mode that determines how grid updates are pushed out from the data source.

Implements:
Returns:

The transform mode - either 'snapshot' or 'live'

Type
String

getVisibleSubjects() → {Array}

Returns an array of subjects currently in the model (corresponding to visible rows), in order.

Implements:
Returns:

the visible subject

Type
Array

pauseUpdates()

Signals the GridRowModel to temporarily pause any updates to all RowModelListener instances.

Implements:
See:

receiveObjects()

Implements:
See:

removeRow(sSubject)

Removes a row from the GridRowModel.

Parameters:
Name Type Description
sSubject String

The RTTP subject identifier (e.g. /FX/EURUSD) for the new row.

Implements:

removeRowModelListener(oRowModelListener)

Removes a listener that no longer wishes to listen to row model events.

Parameters:
Name Type Description
oRowModelListener module:ct-grid/GridRowModelListener

The listener to remove.

Implements:
See:

removeRows(pSubjects)

Removes a number of rows from the GridRowModel.

Parameters:
Name Type Description
pSubjects String

The RTTP subject identifiers of the rows to remove.

Implements:

resumeUpdates()

Signals the GridRowModel to resume updates to any RowModelListener instances.

Implements:
See:

setFilterExpression(oFilterExpression, sFilterNameopt)

Add a filter expression to this row model.

The filter name parameter is optional. If no parameter is passed then this filter expression will be assumed to be 'default'.

Parameters:
Name Type Attributes Description
oFilterExpression module:ct-grid/filter/FilterExpression

The filter expression to apply to this row model.

sFilterName String <optional>

The name that this filter expression will be known by.

Implements:

setGroupByField(sFieldName)

Sets the field to be used for grouping the rows within the row model.

Parameters:
Name Type Description
sFieldName String

The field name that will be used for grouping.

Implements:

setRowData(nIndex, mRowData)

Method added to allow editing data inside grid.

Sets the field value for the row with the specific index

Parameters:
Name Type Description
nIndex String

index id of the row to add field

mRowData Map

field maps to update

Implements:

setRowDataBySubject(index, rowData)

Method added to allow editing data inside grid. The implementation adds the field to a field cache which overrides the fields received from rttp Sets the field value for the row with the specific index

Parameters:
Name Type Description
index int

index id of the row to add field

rowData Map

field maps to update

setRowRange(nStartIndex, nSize)

Sets the start index and total number of rows that the module:ct-grid/GridView is able to display, and hence the the row model should provide.

Parameters:
Name Type Description
nStartIndex int

The start index of the first row visible within the view.

nSize int

The number of rows visible within the view.

Implements:

setSortRule(oSortRule)

Set a rule that will be used to sort the data within the row model.

Parameters:
Name Type Description
oSortRule module:ct-grid/sort/SortRule

The object containing the sort parameters.

Implements:

supportsFeature(feature)

Determine whether this instance of GridRowModel supports a particular feature.

This method is merely proxied on to the underlying module:ct-grid/GridDataProvider.

Parameters:
Name Type Description
feature int

the feature constant that is being queried.

Implements:
See:

terminateUpdates()

Signals the GridRowModel to terminate all updates to any RowModelListener instances.

This method is essentially the destructor for classes implementing GridRowModel, and is the opportunity to perform any clean-up that may be required.

Implements: