CSIT Fix for SDC-2585
[sdc.git] / catalog-ui / src / app / ng2 / pages / connection-wizard / to-node-step / to-node-step.component.ts
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";
9
10 @Component({
11     selector: 'to-node-step',
12     templateUrl: './to-node-step.component.html'
13 })
14
15 export class ToNodeStepComponent implements IStepComponent{
16
17     displayRequirementsOrCapabilities:string; //get 'Requirement' or 'Capability'
18     optionalRequirementsMap: Dictionary<Requirement[]> = {};
19     optionalCapabilitiesMap: Dictionary<Capability[]> ={};
20
21     constructor(@Inject(forwardRef(() => ConnectionWizardService)) public connectWizardService: ConnectionWizardService) {
22     }
23
24     ngOnInit(){
25         if(this.connectWizardService.selectedMatch.isFromTo){
26             this.displayRequirementsOrCapabilities = 'Capability';
27             this.optionalRequirementsMap = {};
28             this.optionalCapabilitiesMap = this.connectWizardService.getOptionalCapabilitiesByInstanceUniqueId(true, this.connectWizardService.selectedMatch.requirement);
29         }else{
30             this.displayRequirementsOrCapabilities = 'Requirement';
31             this.optionalRequirementsMap = this.connectWizardService.getOptionalRequirementsByInstanceUniqueId(false, this.connectWizardService.selectedMatch.capability);
32             this.optionalCapabilitiesMap = {}
33         }
34
35
36     }
37
38     preventNext = ():boolean => {
39         return !this.connectWizardService.selectedMatch.capability || !this.connectWizardService.selectedMatch.requirement;
40     }
41
42     preventBack = ():boolean => {
43         return false;
44     }
45
46     private updateSelectedReqOrCap = (selected:Requirement|Capability):void => {
47         if (!selected) {
48             if (this.connectWizardService.selectedMatch.isFromTo) {
49                 this.connectWizardService.selectedMatch.capability = undefined;
50                 this.connectWizardService.selectedMatch.toNode = undefined;
51             } else {
52                 this.connectWizardService.selectedMatch.requirement = undefined;
53                 this.connectWizardService.selectedMatch.fromNode = undefined;
54             }
55         } else if (selected instanceof Requirement) {
56             this.connectWizardService.selectedMatch.requirement = <Requirement>selected;
57             this.connectWizardService.selectedMatch.fromNode = this.connectWizardService.connectRelationModel.toNode.componentInstance.uniqueId;
58         } else {
59             this.connectWizardService.selectedMatch.capability = <Capability>selected;
60             this.connectWizardService.selectedMatch.toNode = this.connectWizardService.connectRelationModel.toNode.componentInstance.uniqueId;
61         }
62         this.connectWizardService.selectedMatch.relationship = undefined;
63     }
64
65 }