Skip to content
Snippets Groups Projects
dataset-tabs.component.ts 1.19 KiB
Newer Older
François Agneray's avatar
François Agneray committed
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';

Tifenn Guillas's avatar
Tifenn Guillas committed
import { Project, Dataset, Family } from '../../../metamodel/model';
François Agneray's avatar
François Agneray committed

@Component({
    selector: 'app-dataset-tabs',
    templateUrl: 'dataset-tabs.component.html',
    styleUrls: ['dataset-tabs.component.css'],
François Agneray's avatar
François Agneray committed
    changeDetection: ChangeDetectionStrategy.OnPush
})
export class DatasetTabsComponent {
    @Input() projectList: Project[];
Tifenn Guillas's avatar
Tifenn Guillas committed
    @Input() datasetList: Dataset[];
    @Input() datasetFamilyList: Family[];
    @Input()
    set datasetSelected(datasetSelected: string) {
        this.dnameSelected = datasetSelected;
        if (this.dnameSelected === null && this.datasetList.length === 1) {
            this.select.emit(this.datasetList[0].name);
François Agneray's avatar
François Agneray committed
    @Output() select: EventEmitter<string> = new EventEmitter();
Tifenn Guillas's avatar
Tifenn Guillas committed
    dnameSelected: string;
François Agneray's avatar
François Agneray committed

    getDatasetListByFamily(idFamily: number): Dataset[] {
Tifenn Guillas's avatar
Tifenn Guillas committed
        return this.datasetList
            .filter(d => d.id_dataset_family === idFamily)
            .sort((a, b) => a.display - b.display);
    getProject(dataset: Dataset): Project {
        return this.projectList.find(project => project.name === dataset.project_name);
François Agneray's avatar
François Agneray committed
    }
}