Class: IndexerModelTreeDataProvider

Oracle® JavaScript Extension Toolkit (JET)
7.1.0

F18183-01

Signature:

class IndexerModelTreeDataProvider<K, D> implements IndexerModel, TreeDataProvider<K, D>

QuickNav


IndexerModelTreeDataProvider

Version:
  • 7.1.0
Since:
  • 7.0
Module:
  • ojindexermodeltreedataprovider

Module usage

See JET Module Loading for an overview of module usage within JET.

Javascript Import Format
define(['ojs/ojindexermodeltreedataprovider'], function(IndexerModelTreeDataProvider) {
 // Application should call API on IndexerModelTreeDataProvider 
})
Typescript Import Format
//To import this class, use the format below.
import {IndexerModelTreeDataProvider} from "ojs/ojindexermodeltreedataprovider";
Generic Parameters
ParameterDescription
KType of Key
DType of Data

JET In Typescript

A detailed description of working with JET elements and classes in your typescript project can be found at: JET Typescript Usage.

Description

TreeDataProvider and IndexerModel implementation that represents hierachical data available from an array of JSON objects. This DataProvider can be used by Indexer and its associated ListView.

See the Indexer - Basic demo for an example.

Refer to oj.TreeDataProvider for other data providers that represent hierarachical data.

Constructor

new IndexerModelTreeDataProvider(data, options)

Implementation of the IndexerModel and TreeDataProvider based on an array of data set. This should be used with the Indexer and its associated ListView. By default, this DataProvider groups the data based on the first letter of the data and the alphabet of the current locale. Note this implementation of TreeDataProvider does not fire any model events.
Parameters:
Name Type Argument Description
data Array.<any> an array of data used for Indexer and ListView
options Object <optional>
the options set on this IndexerModelTreeProvider
Properties
Name Type Argument Description
keyAttributes string | Array.<string> <optional>
the field of the data that uniquely identifies the data. Can be a string denoting a single key attribute or an array of strings for multiple key attributes. If not specified, then one will be created.
sections Array.<string> | Array.<Object> <optional>
the set of sections to use with the Indexer. If not specified, then the sections are derived from the alphabet of the current locale.
sectionChangeHandler (section: string | object)=> Promise<string | object> <optional>
a callback function that handles when a section becomes current (user clicks on the section in the Indexer). the function takes the section that is going to become current and must return a Promise which when resolve returns the section that actually becomes current.
groupingAttribute string <optional>
the attribute of the data where grouping is based on, mandatory if no groupingStrategy is specified.
groupingStrategy (data: any)=> string | object <optional>
a callback function that takes a data and returns the section that the data belongs to. If no groupingStrategy is specified, then the default grouping strategy based on the first letter of the data is used.
sortComparators ArrayDataProvider.SortComparators<D> <optional>
a comparator function that is used to sort data within a section.
implicitSort Array.<SortCriterion<D>> <optional>
array of oj.SortCriterion used to specify sort information when the data loaded into the DataProvider is already sorted.

Methods

addEventListener(eventType: string, listener: EventListener): void

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(parameters : FetchByKeysParameters<K>) : Promise<ContainsKeysResults<K>>

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

dispatchEvent(evt: Event): boolean

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(parameters : FetchByKeysParameters<K>) : Promise<FetchByKeysResults<K, D>>

Fetch data by specifying a set of keys.
Parameters:
Name Type Description
parameters oj.FetchByKeysParameters fetch by key parameters
Returns:
Returns Promise which resolves to oj.FetchByKeysResults.
Type
Promise.<oj.FetchByKeysResults>

fetchByOffset(parameters: FetchByOffsetParameters<D>): Promise<FetchByOffsetResults<K, D>>

Fetch data by specifying the index to start the fetch and the number of rows to fetch.
Parameters:
Name Type Description
parameters oj.FetchByOffsetParameters fetch by offset parameters
Returns:
Returns Promise which resolves to oj.FetchByOffsetResults.
Type
Promise.<oj.FetchByOffsetResults>

fetchFirst(parameters?: FetchListParameters<D>): AsyncIterable<FetchListResult<K, D>>

Get an asyncIterator which can be used to fetch a 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: string): any

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

getChildDataProvider(parentKey: any): TreeDataProvider<K, D>

Get the data provider for the children of the row identified by parentKey.
Parameters:
Name Type Description
parentKey any key of the row to get child data provider for.
Returns:
A TreeDataProvider if the row can (but doesn't have to) have children; or null if the row cannot have children. Use the isEmpty method on the returned TreeDataProvider to determine if it currently has children.
Type
oj.TreeDataProvider | null

getIndexableSections() → {Array.<string>|Array.<Object>}

Returns an array of objects each representing a section in the associated ListView.
Returns:
an array of all indexable sections
Type
Array.<string> | Array.<Object>

getMissingSections() → {Array.<string>|Array.<Object>}

Returns an array of objects each representing a section that does not have a corresponding section in the associated ListView. It must be a subset of the return value of getIndexableSections. Return null or undefined if there's nothing missing.
Returns:
an array of missing sections
Type
Array.<string> | Array.<Object>

getTotalSize() → {Promise.<number>}

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

isEmpty(): 'yes' | 'no' | 'unknown'

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.
Returns:
string that indicates if this data provider is empty
Type
"yes" | "no" | "unknown"

removeEventListener(eventType: string, listener: EventListener): void

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.

setSection(section) → {Promise.<string>|Promise.<Object>}

Make a section current in the Indexer.
Parameters:
Name Type Description
section string | Object the current section
Returns:
a Promise which when resolved will return the section that the associated ListView actually scrolls to. For example, the implementation could choose to scroll to the next available section in ListView if no data exists for the current section section.
Type
Promise.<string> | Promise.<Object>