650d975c9250e8ee3926011f6eef0a8209d6b691
[vid.git] / vid-webpack-master / src / app / drawingBoard / service-planning / objectsToTree / models / ncf / ncf.model.info.ts
1 import {ILevelNodeInfo} from "../basic.model.info";
2 import {ComponentInfoType} from "../../../component-info/component-info-model";
3 import {ITreeNode} from "angular-tree-component/dist/defs/api";
4 import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
5 import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
6 import {Level1Model} from "../../../../../shared/models/nodeModel";
7 import {NcfTreeNode} from "../../../../../shared/models/ncfTreeNode";
8 import {Level1Instance} from "../../../../../shared/models/level1Instance";
9 import {NgRedux} from "@angular-redux/store";
10 import {AppState} from "../../../../../shared/store/reducers";
11 import {
12   deleteActionNcfInstance,
13   undoDeleteActionNcfInstance
14 } from "../../../../../shared/storeUtil/utils/ncf/ncf.actions";
15 import * as _ from 'lodash';
16 import {NcfModelInterface} from "../../../../../shared/models/ncfModel";
17
18 export class NcfModelInfo implements ILevelNodeInfo {
19   constructor(private _store: NgRedux<AppState>){
20   }
21
22   name: string = 'ncfs';
23   type: string = 'NCF';
24   typeName: string = 'NCF';
25
26   childNames: string[] = [];
27   componentInfoType = ComponentInfoType.NCF;
28
29   isEcompGeneratedNaming(currentModel): boolean {
30     return false;
31   }
32
33   updateDynamicInputsDataFromModel = (currentModel): any => [];
34
35   getModel = (instanceModel: any): any => {
36     return new Level1Model();
37   };
38
39
40   createInstanceTreeNode = (instance: any, model: any, parentModel: any, storeKey: string, serviceModelId: string): any => {
41     let modelVersion: string = null;
42     if (parentModel.networksCollection && instance.originalName) {
43       const ncfRealModel: NcfModelInterface = parentModel.networksCollection[instance.originalName];
44       if (ncfRealModel) {
45         modelVersion = ncfRealModel.version;
46       }
47     }
48
49     let node = new NcfTreeNode(instance, model, storeKey, modelVersion);
50     node.menuActions = this.getMenuAction(<any>node, serviceModelId);
51     node.typeName = this.typeName;
52     return node;
53   };
54
55
56   getNextLevelObject = (): any => {
57     return null;
58   };
59
60   getTooltip = (): string => 'NCF';
61
62   getType = (): string => 'NCF';
63
64   hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
65     return false;
66   }
67
68   onClickAdd(node, serviceModelId: string): void {
69
70   }
71
72   getNodeCount(node: ITreeNode, serviceModelId: string): number {
73     return 0;
74   }
75
76   showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
77     return null;
78   }
79
80   getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
81     return <any>{
82       delete: {
83         method: (node, serviceModelId) => {
84           this._store.dispatch(deleteActionNcfInstance(node.data.parent.collectionResourceStoreKey, node.data.storeKey, serviceModelId));
85         },
86         visible: (node) => false,
87         enable: (node) => false
88       },
89       undoDelete: {
90         method: (node, serviceModelId) => {
91           this._store.dispatch(undoDeleteActionNcfInstance(node.data.parent.collectionResourceStoreKey, node.data.storeKey, serviceModelId));
92         },
93         visible: (node) => false,
94         enable: (node) => false
95       }
96
97     };
98   }
99
100   updatePosition(that, node, instanceId): void {
101   }
102
103   getNodePosition(instance): number {
104     return 0;
105   }
106
107   getInfo(model, instance: NcfTreeNode): ModelInformationItem[] {
108
109     if (_.isNil(instance)) {
110       return [];
111     }
112
113     return [
114       ModelInformationItem.createInstance("Model version", instance.modelVersion),
115       ModelInformationItem.createInstance('Role', instance.instanceGroupRole),
116       ModelInformationItem.createInstance('Collection function', instance.instanceGroupFunction),
117       ModelInformationItem.createInstance('Number of networks', instance.numberOfNetworks),
118     ];
119   }
120 }
121