Class: ArrayDataProvider

Oracle® JavaScript Extension Toolkit (JET)
5.0.0

E90577-01

QuickNav

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

ArrayDataProvider

Version:
  • 5.0.0
Since:
  • 4.1.0
Module:
  • ojarraydataprovider
This class implements oj.DataProvider. Object representing data available from an array. This dataprovider can be used by ListView, NavigationList, TabBar, and Table.

See the Table - Base Table demo for an example.

The default sorting algorithm used when a sortCriteria is passed into fetchFirst is natural sort.

Events

Consumers can add event listeners to listen for the following event types and respond to data change.

mutate

This event is fired when items have been added or removed from the data.

Event payload is found under event.detail, which implements the oj.DataProviderMutationEventDetail interface.

refresh

This event is fired when the data has been refreshed and components need to re-fetch the data.

This event contains no additional event payload.

Example of consumer listening for the "mutate" event type:
var listener = function(event) {
  if (event.detail.remove) {
    var removeDetail = event.detail.remove;
    // Handle removed items
  }
};
dataProvider.addEventListener("mutate", listener);

Constructor

new ArrayDataProvider(data, options)

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Parameters:
Name Type Argument Description
data Array | function():Array data supported by the components

This can be either an Array, or a Knockout observableArray.

options Object <optional>
Options for the ArrayDataProvider
Properties
Name Type Argument Description
sortComparators oj.SortComparators <optional>
Optional oj.sortComparator to use for sort.
implicitSort Array.<oj.SortCriterion> <optional>
Optional array of oj.sortCriterion used to specify sort information when the data loaded into the dataprovider is already sorted.
keys Array | function():Array <optional>
Optional keys for the data. If not supplied, then the keys are generated according options.idAttribute. If that is also not supplied then index is used as key.
idAttribute string | Array.<string> <optional>
Optionally the field name which stores the id in the data. Can be a string denoting a single key attribute or an array of strings for multiple key attributes. @index causes ArrayDataProvider to use index as key and @value will cause ArrayDataProvider to use all attributes as key. @index is the default.
Example
// First initialize an array
var deptArray = [{DepartmentId: 10, DepartmentName: 'Administration', LocationId: 200},
                 {DepartmentId: 20, DepartmentName: 'Marketing', LocationId: 200},
                 {DepartmentId: 30, DepartmentName: 'Purchasing', LocationId: 200}];
// Then create an ArrayDataProvider object with the array
var dataprovider = new oj.ArrayDataProvider(deptArray, {idAttribute: 'DepartmentId'});

Methods

addEventListener(eventType, listener)

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Add a callback function to listen for a specific event type.
Parameters:
Name Type Description
eventType string The event type to listen for.
listener EventListener The callback function that receives the event notification.

containsKeys(params) → {Promise.<oj.ContainsKeysResults>}

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Check if there are rows containing the specified keys
Parameters:
Name Type Description
params oj.FetchByKeysParameters Fetch by keys parameters
Returns:
Promise which resolves to oj.ContainsKeysResults
Type
Promise.<oj.ContainsKeysResults>

dispatchEvent(event) → {boolean}

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Dispatch an event and invoke any registered listeners.
Parameters:
Name Type Description
event Event The event object to dispatch.
Returns:
Return false if a registered listener has cancelled the event. Return true otherwise.
Type
boolean

fetchByKeys(params) → {Promise.<oj.FetchByKeysResults>}

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Fetch rows by keys
Parameters:
Name Type Description
params oj.FetchByKeysParameters Fetch by keys parameters
Returns:
Promise which resolves to oj.FetchByKeysResults
Type
Promise.<oj.FetchByKeysResults>

fetchByOffset(params) → {Promise.<oj.FetchByOffsetResults>}

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Fetch rows by offset
Parameters:
Name Type Description
params oj.FetchByOffsetParameters Fetch by offset parameters
Returns:
Promise which resolves to oj.FetchByOffsetResults
Type
Promise.<oj.FetchByOffsetResults>

fetchFirst(params) → {AsyncIterable.<oj.FetchListResult>}

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Fetch the first block of data.
Parameters:
Name Type Argument Description
params oj.FetchListParameters <optional>
Fetch parameters
See:
Returns:
AsyncIterable with oj.FetchListResult
Type
AsyncIterable.<oj.FetchListResult>

getCapability(capabilityName) → {Object}

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Determines whether this DataProvider supports certain feature.
Parameters:
Name Type Description
capabilityName string capability name. Supported capability names are: "fetchByKeys", "fetchByOffset", and "sort".
Returns:
capability information or null if unsupported
Type
Object

getTotalSize() → {Promise.<number>}

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Return the total number of rows in this dataprovider
Returns:
Returns a Promise which resolves to the total number of rows. -1 is unknown row count.
Type
Promise.<number>

isEmpty() → {"yes"|"no"|"unknown"}

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Return a string that indicates if this data provider is empty
Returns:
a string that indicates if this data provider is empty. Valid values are: "yes": this data provider is empty. "no": this data provider is not empty. "unknown": it is not known if this data provider is empty until a fetch is made.
Type
"yes" | "no" | "unknown"

removeEventListener(eventType, listener)

PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

Remove a listener previously registered with addEventListener.
Parameters:
Name Type Description
eventType string The event type that the listener was registered for.
listener EventListener The callback function that was registered.