UNPKG

igniteui-webcomponents-datasources

Version:

Reference custom data providers for the Ignite UI Web Components data source.

133 lines (132 loc) 5.64 kB
import { VirtualDataSource } from "igniteui-webcomponents-core"; import { ODataVirtualDataSourceDataProvider } from "./ODataVirtualDataSourceDataProvider"; import { typeCast } from "igniteui-webcomponents-core"; export class ODataVirtualDataSource extends VirtualDataSource { constructor() { super(); this._baseUri = null; this._entitySet = null; this._timeoutMilliseconds = 10000; this._isAggregationSupportedByServer = false; this._enableJsonp = true; this.dataProvider = ((() => { let $ret = new ODataVirtualDataSourceDataProvider(); $ret.executionContext = this.executionContext; $ret.enableJsonp = this.enableJsonp; $ret.isAggregationSupported = this.isGroupingSupported; return $ret; })()); this.externalDataSource = this; } onBaseUriChanged(oldValue, newValue) { if (typeCast(ODataVirtualDataSourceDataProvider.$type, this.actualDataProvider) !== null) { this.actualDataProvider.baseUri = this.baseUri; } this.queueAutoRefresh(); } get baseUri() { return this._baseUri; } set baseUri(value) { let oldValue = this._baseUri; this._baseUri = value; if (oldValue != this._baseUri) { this.onBaseUriChanged(oldValue, this._baseUri); } } onEntitySetChanged(oldValue, newValue) { if (typeCast(ODataVirtualDataSourceDataProvider.$type, this.actualDataProvider) !== null) { this.actualDataProvider.entitySet = this.entitySet; } this.queueAutoRefresh(); } get entitySet() { return this._entitySet; } set entitySet(value) { let oldValue = this._entitySet; this._entitySet = value; if (this._entitySet != oldValue) { this.onEntitySetChanged(oldValue, this._entitySet); } } onTimeoutMillisecondsChanged(oldValue, newValue) { if (typeCast(ODataVirtualDataSourceDataProvider.$type, this.actualDataProvider) !== null) { this.actualDataProvider.timeoutMilliseconds = this.timeoutMilliseconds; } } get timeoutMilliseconds() { return this._timeoutMilliseconds; } set timeoutMilliseconds(value) { let oldValue = this._timeoutMilliseconds; this._timeoutMilliseconds = value; if (oldValue != this._timeoutMilliseconds) { this.onTimeoutMillisecondsChanged(oldValue, this._timeoutMilliseconds); } } get isSortingSupportedOverride() { return true; } get isFilteringSupportedOverride() { return true; } get isGroupingSupportedOverride() { return this.isAggregationSupportedByServer; } get isAggregationSupportedByServer() { return this._isAggregationSupportedByServer; } set isAggregationSupportedByServer(isSupported) { this._isAggregationSupportedByServer = isSupported; if (typeCast(ODataVirtualDataSourceDataProvider.$type, this.actualDataProvider) !== null) { this.actualDataProvider.isAggregationSupported = isSupported; } } get enableJsonp() { return this._enableJsonp; } set enableJsonp(isEnabled) { this._enableJsonp = isEnabled; if (typeCast(ODataVirtualDataSourceDataProvider.$type, this.actualDataProvider) !== null) { this.actualDataProvider.enableJsonp = isEnabled; } } clone() { let dataSource = new ODataVirtualDataSource(); dataSource.executionContext = this.executionContext; dataSource.includeSummaryRowsInSection = this.includeSummaryRowsInSection; dataSource.isSectionCollapsable = this.isSectionCollapsable; dataSource.isSectionExpandedDefault = this.isSectionExpandedDefault; //dataSource.isSectionHeaderNormalRow = this.isSectionHeaderNormalRow; dataSource.isSectionSummaryRowsAtBottom = this.isSectionSummaryRowsAtBottom; //dataSource.isSectionContentVisible = this.isSectionContentVisible; dataSource.primaryKey = this.primaryKey; dataSource.propertiesRequested = this.propertiesRequested; dataSource.sectionHeaderDisplayMode = this.sectionHeaderDisplayMode; dataSource.shouldEmitSectionFooters = this.shouldEmitSectionFooters; dataSource.shouldEmitSectionHeaders = this.shouldEmitSectionHeaders; dataSource.shouldEmitShiftedRows = this.shouldEmitShiftedRows; dataSource.summaryScope = this.summaryScope; for (var i = 0; i < this.groupDescriptions.size(); i++) { dataSource.groupDescriptions.add(this.groupDescriptions.get(i)); } for (var i = 0; i < this.sortDescriptions.size(); i++) { dataSource.sortDescriptions.add(this.sortDescriptions.get(i)); } for (var i = 0; i < this.filterExpressions.size(); i++) { dataSource.filterExpressions.add(this.filterExpressions.get(i)); } for (var i = 0; i < this.summaryDescriptions.size(); i++) { dataSource.summaryDescriptions.add(this.summaryDescriptions.get(i)); } dataSource.pageSizeRequested = this.pageSizeRequested; dataSource.maxCachedPages = this.maxCachedPages; dataSource.baseUri = this.baseUri; dataSource.entitySet = this.entitySet; dataSource.timeoutMilliseconds = this.timeoutMilliseconds; dataSource.isAggregationSupportedByServer = this.isAggregationSupportedByServer; dataSource.enableJsonp = this.enableJsonp; return dataSource; } }