argos/dmp-frontend/src/app/models/DataField/WordListData.ts

32 lines
1.0 KiB
TypeScript
Raw Normal View History

import { JsonSerializer } from '../../utilities/JsonSerializer';
import { ListingItem } from '../Common/ListingItem';
import { DataField } from './DataField';
2018-05-14 08:44:35 +02:00
import { FormGroup } from '@angular/forms'
export class WordListData extends DataField<WordListData>{
2018-05-14 08:44:35 +02:00
public type: string;
public options: Array<ListingItem>;
buildForm(): FormGroup {
let formGroup = this.formBuilder.group({
2018-05-14 08:44:35 +02:00
type: [this.type],
label: [this.label]
});
let optionsFormArray = new Array<FormGroup>();
if (this.options) {
this.options.forEach(item => {
let form: FormGroup = item.buildForm();
optionsFormArray.push(form)
})
}
formGroup.addControl('options', this.formBuilder.array(optionsFormArray));
return formGroup;
}
2018-05-14 08:44:35 +02:00
fromJSONObject(item: any): WordListData {
this.type = item.type;
2018-05-14 08:44:35 +02:00
this.options = JsonSerializer.fromJSONArray(item.options, ListingItem);
this.label = item.label;
return this;
}
}