import { JsonSerializer } from '../../utilities/JsonSerializer'; import { FormGroup } from '@angular/forms'; import { Serializable } from '../interfaces/Serializable'; import { BaseModel } from '../BaseModel'; import {Field} from './Field' import {Multiplicity} from './Multiplicity' export class FieldSet extends BaseModel implements Serializable
{ public fields:Array = new Array(); public id:string; public ordinal:number; public multiplicity: Multiplicity = new Multiplicity(); public title:string; public description:string; public extendedDescription:string; public hasCommentField:boolean; fromJSONObject(item:any):FieldSet{ this.fields = new JsonSerializer().fromJSONArray(item.fields,Field); this.multiplicity = new JsonSerializer().fromJSONObject(item.multiplicity, Multiplicity); this.id = item.id; this.ordinal = item.ordinal; this.title = item.title; this.description = item.description; this.extendedDescription = item.extendedDescription; this.hasCommentField = item.hasCommentField; return this; } buildForm():FormGroup{ let formGroup = this.formBuilder.group({ id:[this.id], ordinal:[this.ordinal], title:[this.title], description: [this.description], extendedDescription:[this.extendedDescription], hasCommentField:[this.hasCommentField] }); let fieldsFormArray = new Array(); this.fields.forEach(item => { let form: FormGroup = item.buildForm(); fieldsFormArray.push(form) }) formGroup.addControl('fields', this.formBuilder.array(fieldsFormArray)); formGroup.addControl("multiplicity", this.multiplicity.buildForm()); return formGroup; } }