import { ProjectEditorWizardModel } from "../project-editor/project-editor-wizard-model"; import { DmpEditorWizardModel } from "../dmp-editor/dmp-editor-wizard-model"; import { DmpModel } from "../../../core/model/dmp/dmp"; import { ProjectListingModel } from "../../../core/model/project/project-listing"; import { DatasetModel } from "../../../core/model/dataset/dataset"; import { ValidationContext } from "../../../common/forms/validation/validation-context"; import { FormGroup, FormBuilder, Validators } from "@angular/forms"; import { BackendErrorValidator } from "../../../common/forms/validation/custom-validator"; import { ValidationErrorModel } from "../../../common/forms/validation/error-model/validation-error-model"; import { DatasetEditorWizardModel } from "../dataset-editor/dataset-editor-wizard-model"; import { DatasetWizardEditorModel } from "../../dataset/dataset-wizard/dataset-wizard-editor.model"; export class QuickWizardEditorWizardModel { public project: ProjectEditorWizardModel; public dmp: DmpEditorWizardModel; public datasets: DatasetEditorWizardModel; public validationErrorModel: ValidationErrorModel = new ValidationErrorModel(); fromModelProject(item: ProjectListingModel): QuickWizardEditorWizardModel { this.project.fromModel(item); return this; } fromModelDmp(item: DmpModel): QuickWizardEditorWizardModel { this.dmp.fromModel(item); return this; } fromModelDataset(item: DatasetWizardEditorModel[]): QuickWizardEditorWizardModel { this.datasets.fromModel(item); return this; } buildForm(context: ValidationContext = null): FormGroup { // if (context == null) { context = this.createValidationContext(); } const formGroup = new FormBuilder().group({ project: new ProjectEditorWizardModel().buildForm(), dmp: new DmpEditorWizardModel().buildForm(), datasets: new DatasetEditorWizardModel().buildForm() }); return formGroup; } // createValidationContext(): ValidationContext { // const baseContext: ValidationContext = new ValidationContext(); // baseContext.validation.push({ key: 'project', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'project')] }); // baseContext.validation.push({ key: 'dmp', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'dmp')] }); // baseContext.validation.push({ key: 'datasets', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'datasets')] }); // return baseContext; // } }