src/app/pattern/pattern.component.ts
selector | app-pattern |
styleUrls | ./pattern.component.css |
templateUrl | ./pattern.component.html |
Properties |
Methods |
Inputs |
constructor(fb: FormBuilder)
|
||||||
Defined in src/app/pattern/pattern.component.ts:16
|
||||||
Parameters :
|
formGroup | |
Type : FormGroup
|
|
Defined in src/app/pattern/pattern.component.ts:13
|
optimizationDto | |
Type : OptimizationDto
|
|
Defined in src/app/pattern/pattern.component.ts:16
|
addPattern | ||||
addPattern(obj)
|
||||
Defined in src/app/pattern/pattern.component.ts:33
|
||||
Parameters :
Returns :
void
|
changePatterns |
changePatterns(obj: string, checked: boolean)
|
Defined in src/app/pattern/pattern.component.ts:25
|
Returns :
void
|
changeScopeSelection | ||||||
changeScopeSelection(event: MatRadioChange)
|
||||||
Defined in src/app/pattern/pattern.component.ts:54
|
||||||
Parameters :
Returns :
void
|
cleanOperators |
cleanOperators()
|
Defined in src/app/pattern/pattern.component.ts:40
|
Returns :
void
|
ngOnInit |
ngOnInit()
|
Defined in src/app/pattern/pattern.component.ts:22
|
Returns :
void
|
removePattern | ||||
removePattern(obj)
|
||||
Defined in src/app/pattern/pattern.component.ts:49
|
||||
Parameters :
Returns :
void
|
floatLabelControl |
Default value : new FormControl('auto')
|
Defined in src/app/pattern/pattern.component.ts:15
|
hideRequiredControl |
Default value : new FormControl(false)
|
Defined in src/app/pattern/pattern.component.ts:14
|
import {Component, Input, OnInit} from '@angular/core';
import {FormBuilder, FormControl, FormGroup} from "@angular/forms";
import {OptimizationDto} from "../dto/optimization-dto";
import {MatRadioChange} from "@angular/material/radio";
@Component({
selector: 'app-pattern',
templateUrl: './pattern.component.html',
styleUrls: ['./pattern.component.css']
})
export class PatternComponent implements OnInit {
@Input() formGroup: FormGroup;
hideRequiredControl = new FormControl(false);
floatLabelControl = new FormControl('auto');
@Input() optimizationDto: OptimizationDto;
constructor(fb: FormBuilder) {
}
ngOnInit() {
}
changePatterns(obj: string, checked: boolean) {
if (checked) {
this.addPattern(obj);
} else {
this.removePattern(obj);
}
}
addPattern(obj) {
if (!this.optimizationDto.patterns.includes(obj)) {
this.optimizationDto.patterns.push(obj);
}
this.cleanOperators()
}
cleanOperators() {
if (this.optimizationDto.patterns.length > 0) {
if (!this.optimizationDto.mutationOperators.includes('DESIGN_PATTERNS'))
this.optimizationDto.mutationOperators.push('DESIGN_PATTERNS');
} else {
this.optimizationDto.mutationOperators.splice(this.optimizationDto.mutationOperators.indexOf('DESIGN_PATTERNS', 1));
}
}
removePattern(obj) {
this.optimizationDto.patterns.splice(this.optimizationDto.patterns.indexOf(obj), 1);
this.cleanOperators()
}
changeScopeSelection(event: MatRadioChange) {
this.optimizationDto.scopeSelection = event.value
}
}
<opla-grid-list>
<opla-grid-tile>
<mat-card>
<form [formGroup]="formGroup">
<opla-grid-list>
<opla-grid-tile>
<mat-checkbox [formControl]="hideRequiredControl" (change)="changePatterns('MEDIATOR', $event.checked)">
Mediator
</mat-checkbox>
</opla-grid-tile>
<opla-grid-tile>
<mat-checkbox [formControl]="hideRequiredControl" (change)="changePatterns('STRATEGY', $event.checked)">
Strategy
</mat-checkbox>
</opla-grid-tile>
<opla-grid-tile>
<mat-checkbox [formControl]="hideRequiredControl" (change)="changePatterns('BRIDGE', $event.checked)">
Bridge
</mat-checkbox>
</opla-grid-tile>
<opla-grid-tile>
<mat-checkbox [formControl]="hideRequiredControl" (change)="changePatterns('FACADE', $event.checked)">
Facade
</mat-checkbox>
</opla-grid-tile>
<opla-grid-tile>
<mat-checkbox [formControl]="hideRequiredControl" (change)="changePatterns('ADAPTER', $event.checked)">
Adapter
</mat-checkbox>
</opla-grid-tile>
</opla-grid-list>
<opla-grid-list>
<opla-grid-tile>
<mat-radio-group aria-label="Scope Selection" (change)="changeScopeSelection($event)">
<mat-radio-button value="RANDOM">Random</mat-radio-button>
<mat-radio-button value="WHOLE">Whole</mat-radio-button>
<mat-radio-button value="WHOLE_WITHOUT_PACKAGE">Whole without package</mat-radio-button>
</mat-radio-group>
</opla-grid-tile>
</opla-grid-list>
</form>
</mat-card>
</opla-grid-tile>
</opla-grid-list>
<br><br>
./pattern.component.css