File

src/app/pattern/pattern.component.ts

Implements

OnInit

Metadata

selector app-pattern
styleUrls ./pattern.component.css
templateUrl ./pattern.component.html

Index

Properties
Methods
Inputs

Constructor

constructor(fb: FormBuilder)
Parameters :
Name Type Optional
fb FormBuilder No

Inputs

formGroup
Type : FormGroup
optimizationDto
Type : OptimizationDto

Methods

addPattern
addPattern(obj)
Parameters :
Name Optional
obj No
Returns : void
changePatterns
changePatterns(obj: string, checked: boolean)
Parameters :
Name Type Optional
obj string No
checked boolean No
Returns : void
changeScopeSelection
changeScopeSelection(event: MatRadioChange)
Parameters :
Name Type Optional
event MatRadioChange No
Returns : void
cleanOperators
cleanOperators()
Returns : void
ngOnInit
ngOnInit()
Returns : void
removePattern
removePattern(obj)
Parameters :
Name Optional
obj No
Returns : void

Properties

floatLabelControl
Default value : new FormControl('auto')
hideRequiredControl
Default value : new FormControl(false)
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> &nbsp;
              <mat-radio-button value="WHOLE">Whole</mat-radio-button> &nbsp;
              <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

Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""