igniteui-webcomponents-datasources
Version:
Reference custom data providers for the Ignite UI Web Components data source.
133 lines (132 loc) • 5.64 kB
JavaScript
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;
}
}