Skip to content
Snippets Groups Projects
dataset-tabs.component.ts 1.14 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[];
    @Input() 
    set datasetList(datasetList: Dataset[]) {
        this.datasets = datasetList;
        if (datasetList.length === 1) {
            this.select.emit(datasetList[0].name);
        }
    }
    @Input() datasetFamilyList: Family[];
François Agneray's avatar
François Agneray committed
    @Input() datasetSelected: string;
    @Output() select: EventEmitter<string> = new EventEmitter();
    
    datasets: Dataset[];
François Agneray's avatar
François Agneray committed

    getDatasetListByFamily(idFamily: number): Dataset[] {
        return this.datasets
            .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
    }
}