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";
12 deleteActionNcfInstance,
13 undoDeleteActionNcfInstance
14 } from "../../../../../shared/storeUtil/utils/ncf/ncf.actions";
15 import * as _ from 'lodash';
16 import {NcfModelInterface} from "../../../../../shared/models/ncfModel";
18 export class NcfModelInfo implements ILevelNodeInfo {
19 constructor(private _store: NgRedux<AppState>){
22 name: string = 'ncfs';
24 typeName: string = 'NCF';
26 childNames: string[] = [];
27 componentInfoType = ComponentInfoType.NCF;
29 isEcompGeneratedNaming(currentModel): boolean {
33 updateDynamicInputsDataFromModel = (currentModel): any => [];
35 getModel = (modelId: string, instance: any, serviceHierarchy): any => {
36 return new Level1Model();
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];
45 modelVersion = ncfRealModel.version;
49 let node = new NcfTreeNode(instance, model, storeKey, modelVersion);
50 node.menuActions = this.getMenuAction(<any>node, serviceModelId);
51 node.typeName = this.typeName;
56 getNextLevelObject = (): any => {
60 getTooltip = (): string => 'NCF';
62 getType = (): string => 'NCF';
64 hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
68 onClickAdd(node, serviceModelId: string): void {
72 getNodeCount(node: ITreeNode, serviceModelId: string): number {
76 showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
80 getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
83 method: (node, serviceModelId) => {
84 this._store.dispatch(deleteActionNcfInstance(node.data.parent.collectionResourceStoreKey, node.data.storeKey, serviceModelId));
86 visible: (node) => false,
87 enable: (node) => false
90 method: (node, serviceModelId) => {
91 this._store.dispatch(undoDeleteActionNcfInstance(node.data.parent.collectionResourceStoreKey, node.data.storeKey, serviceModelId));
93 visible: (node) => false,
94 enable: (node) => false
100 updatePosition(that, node, instanceId): void {
103 getNodePosition(instance): number {
107 getInfo(model, instance: NcfTreeNode): ModelInformationItem[] {
109 if (_.isNil(instance)) {
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),