re base code
[sdc.git] / catalog-ui / src / app / models / graph / nodes / composition-graph-nodes / composition-ci-node-vl.ts
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 import * as _ from "lodash";
21 import {ComponentInstance} from "../../../componentsInstances/componentInstance";
22 import {ImageCreatorService} from "../../../../directives/graphs-v2/image-creator/image-creator.service";
23 import {CompositionCiNodeBase} from "./composition-ci-node-base";
24 import { ImagesUrl, GraphUIObjects} from "../../../../utils/constants";
25
26 export class CompositionCiNodeVl extends CompositionCiNodeBase {
27     private toolTipText:string;
28
29     constructor(instance:ComponentInstance, imageCreator:ImageCreatorService) {
30         super(instance, imageCreator);
31         this.initVl();
32
33     }
34
35     private initVl():void {
36         this.type = "basic-small-node";
37         this.toolTipText = 'Point to point';
38         if(this.componentInstance.capabilities) {
39             let key:string = _.find(Object.keys(this.componentInstance.capabilities), (key)=> {
40                 return _.includes(key.toLowerCase(), 'linkable');
41             });
42             let linkable = this.componentInstance.capabilities[key];
43             if (linkable) {
44                 if ('UNBOUNDED' == linkable[0].maxOccurrences) {
45                     this.toolTipText = 'Multi point';
46                 }
47
48             }
49         }
50         this.img = this.imagesPath + ImagesUrl.RESOURCE_ICONS + 'vl.png';
51         this.imgWidth = GraphUIObjects.SMALL_RESOURCE_WIDTH;
52         this.imagesPath = this.imagesPath + ImagesUrl.RESOURCE_ICONS;
53
54         this.classes = 'vl-node';
55         if(this.archived){
56             this.classes = this.classes + ' archived';
57             return;
58         }
59         if (!this.certified) {
60             this.classes = this.classes + ' not-certified';
61         }
62     }
63 }