1 import {Component, forwardRef, Inject} from '@angular/core';
2 import {IStepComponent} from "app/models"
3 import {Dictionary} from "lodash";
4 import {ConnectionWizardService} from "../connection-wizard.service";
5 import {Match} from "../../../../models/graph/match-relation";
6 import {Requirement} from "../../../../models/requirement";
7 import {Capability} from "../../../../models/capability";
8 import {PropertyModel} from "../../../../models/properties";
11 selector: 'to-node-step',
12 templateUrl: './to-node-step.component.html'
15 export class ToNodeStepComponent implements IStepComponent{
17 displayRequirementsOrCapabilities:string; //get 'Requirement' or 'Capability'
18 optionalRequirementsMap: Dictionary<Requirement[]> = {};
19 optionalCapabilitiesMap: Dictionary<Capability[]> ={};
21 constructor(@Inject(forwardRef(() => ConnectionWizardService)) public connectWizardService: ConnectionWizardService) {
25 if(this.connectWizardService.selectedMatch.isFromTo){
26 this.displayRequirementsOrCapabilities = 'Capability';
27 this.optionalRequirementsMap = {};
28 this.optionalCapabilitiesMap = this.connectWizardService.getOptionalCapabilitiesByInstanceUniqueId(true, this.connectWizardService.selectedMatch.requirement);
30 this.displayRequirementsOrCapabilities = 'Requirement';
31 this.optionalRequirementsMap = this.connectWizardService.getOptionalRequirementsByInstanceUniqueId(false, this.connectWizardService.selectedMatch.capability);
32 this.optionalCapabilitiesMap = {}
38 preventNext = ():boolean => {
39 return !this.connectWizardService.selectedMatch.capability || !this.connectWizardService.selectedMatch.requirement;
42 preventBack = ():boolean => {
46 private updateSelectedReqOrCap = (selected:Requirement|Capability):void => {
48 if (this.connectWizardService.selectedMatch.isFromTo) {
49 this.connectWizardService.selectedMatch.capability = undefined;
50 this.connectWizardService.selectedMatch.toNode = undefined;
52 this.connectWizardService.selectedMatch.requirement = undefined;
53 this.connectWizardService.selectedMatch.fromNode = undefined;
55 } else if (selected instanceof Requirement) {
56 this.connectWizardService.selectedMatch.requirement = <Requirement>selected;
57 this.connectWizardService.selectedMatch.fromNode = this.connectWizardService.connectRelationModel.toNode.componentInstance.uniqueId;
59 this.connectWizardService.selectedMatch.capability = <Capability>selected;
60 this.connectWizardService.selectedMatch.toNode = this.connectWizardService.connectRelationModel.toNode.componentInstance.uniqueId;
62 this.connectWizardService.selectedMatch.relationship = undefined;