libs/core/src/lib/abstract-services/rendering-hints-dataset.service.ts
Properties |
|
Methods |
|
constructor(servicesConnector: HelgolandServicesConnector)
|
||||||
Parameters :
|
Public datasetIds |
Type : string[]
|
Default value : []
|
Inherited from
DatasetService
|
Defined in
DatasetService:7
|
Public datasetIdsChanged |
Type : EventEmitter<string[]>
|
Default value : new EventEmitter()
|
Inherited from
DatasetService
|
Defined in
DatasetService:11
|
Public datasetOptions |
Type : Map<string | T>
|
Default value : new Map()
|
Inherited from
DatasetService
|
Defined in
DatasetService:9
|
Public Async addDataset | |||||||||
addDataset(internalId: string, options?: T)
|
|||||||||
Parameters :
Returns :
Promise<boolean>
|
Private Async addLoadedDataset | |||||||||
addLoadedDataset(timeseries: HelgolandTimeseries, resolve: (value: boolean | PromiseLike
|
|||||||||
Parameters :
Returns :
any
|
Private createOptionsOfRenderingHints | ||||||
createOptionsOfRenderingHints(timeseries: HelgolandTimeseries)
|
||||||
Parameters :
Returns :
T
|
Private handleBarRenderingHints | |||||||||
handleBarRenderingHints(barHints: BarRenderingHints, options: DatasetOptions)
|
|||||||||
Parameters :
Returns :
void
|
Private handleLineRenderingHints | |||||||||
handleLineRenderingHints(lineHints: LineRenderingHints, options: DatasetOptions)
|
|||||||||
Parameters :
Returns :
void
|
Public Async addDataset | |||||||||
addDataset(internalId: string, options?: T)
|
|||||||||
Inherited from
DatasetService
|
|||||||||
Defined in
DatasetService:20
|
|||||||||
Adds the dataset to the selection
Parameters :
Returns :
Promise<boolean>
Successfull added the dataset. |
Protected Abstract createStyles | ||||||
createStyles(internalId: string)
|
||||||
Inherited from
DatasetService
|
||||||
Defined in
DatasetService:68
|
||||||
Parameters :
Returns :
T
|
Public hasDataset | ||||||
hasDataset(id: string)
|
||||||
Inherited from
DatasetService
|
||||||
Defined in
DatasetService:59
|
||||||
Parameters :
Returns :
boolean
|
Public hasDatasets |
hasDatasets()
|
Inherited from
DatasetService
|
Defined in
DatasetService:55
|
Returns :
boolean
|
Protected Abstract loadState |
loadState()
|
Inherited from
DatasetService
|
Defined in
DatasetService:72
|
Returns :
void
|
Public removeAllDatasets |
removeAllDatasets()
|
Inherited from
DatasetService
|
Defined in
DatasetService:38
|
Returns :
void
|
Public removeDataset | ||||||
removeDataset(internalId: string)
|
||||||
Inherited from
DatasetService
|
||||||
Defined in
DatasetService:45
|
||||||
Parameters :
Returns :
void
|
Protected Abstract saveState |
saveState()
|
Inherited from
DatasetService
|
Defined in
DatasetService:70
|
Returns :
void
|
Public updateDatasetOptions | |||||||||
updateDatasetOptions(options: T, internalId: string)
|
|||||||||
Inherited from
DatasetService
|
|||||||||
Defined in
DatasetService:63
|
|||||||||
Parameters :
Returns :
void
|
import { DatasetType, HelgolandTimeseries } from '../api-communication/model/internal/dataset';
import { BarRenderingHints, LineRenderingHints } from '../model/dataset-api/dataset';
import { DatasetOptions } from '../model/internal/options';
import { HelgolandServicesConnector } from '../api-communication/helgoland-services-connector';
import { DatasetService } from './dataset.service';
export abstract class RenderingHintsDatasetService<T extends DatasetOptions | DatasetOptions[]> extends DatasetService<T> {
constructor(
protected servicesConnector: HelgolandServicesConnector
) {
super();
}
public async addDataset(internalId: string, options?: T): Promise<boolean> {
return new Promise<boolean>((resolve) => {
if (this.datasetIds.indexOf(internalId) < 0) {
if (options) {
this.datasetIds.push(internalId);
this.datasetOptions.set(internalId, options);
this.datasetIdsChanged.emit(this.datasetIds);
this.saveState();
resolve(true);
} else {
this.servicesConnector.getDataset(internalId, { type: DatasetType.Timeseries })
.subscribe(dataset => this.addLoadedDataset(dataset, resolve));
}
}
});
}
private async addLoadedDataset(timeseries: HelgolandTimeseries, resolve: (value?: boolean | PromiseLike<boolean>) => void) {
this.datasetIds.push(timeseries.internalId);
this.datasetOptions.set(timeseries.internalId, this.createOptionsOfRenderingHints(timeseries));
this.datasetIdsChanged.emit(this.datasetIds);
this.saveState();
resolve(true);
}
private createOptionsOfRenderingHints(timeseries: HelgolandTimeseries): T {
const options = this.createStyles(timeseries.internalId) as DatasetOptions;
if (timeseries.renderingHints) {
if (timeseries.renderingHints.properties && timeseries.renderingHints.properties.color) {
options.color = timeseries.renderingHints.properties.color;
}
switch (timeseries.renderingHints.chartType) {
case 'line':
this.handleLineRenderingHints(timeseries.renderingHints as LineRenderingHints, options);
break;
case 'bar':
this.handleBarRenderingHints(timeseries.renderingHints as BarRenderingHints, options);
break;
default:
break;
}
}
return options as T;
}
private handleLineRenderingHints(lineHints: LineRenderingHints, options: DatasetOptions) {
if (lineHints.properties.width) {
options.lineWidth = Math.round(parseFloat(lineHints.properties.width));
}
}
private handleBarRenderingHints(barHints: BarRenderingHints, options: DatasetOptions) {
if (barHints.properties.width) {
options.lineWidth = Math.round(parseFloat(barHints.properties.width));
}
}
}