X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=vid-webpack-master%2Fsrc%2Fapp%2FdrawingBoard%2Fservice-planning%2FobjectsToTree%2FobjectToModelTree%2FobjectToModelTree.service.ts;h=c101f44e934023cbfd7954bff064b8ab4eb122cf;hb=f792671ae247a931f34d902e9276202b5016ef9a;hp=e941faad3a740a0a3eb61b09e97be79fccab779d;hpb=f6784c3d4da1b0b70e2f153e4dad8400e6dc55e7;p=vid.git diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts index e941faad3..c101f44e9 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts @@ -2,9 +2,11 @@ import {Injectable} from "@angular/core"; import {ILevelNodeInfo} from "../models/basic.model.info"; import {ObjectToTreeService} from "../objectToTree.service"; import * as _ from "lodash"; +import {IModelTreeNodeModel} from "../../../objectsToTree/objectToModelTree/modelTreeNode.model"; @Injectable() export class ObjectToModelTreeService { + numberOfPlusButton: number; constructor(private _objectToTreeService: ObjectToTreeService) { } @@ -21,10 +23,20 @@ export class ObjectToModelTreeService { nodes.push(_this.addFirstLevelModel(serviceModel.service.uuid, key, item, item.type, serviceModel, option)); }); } + + this.calculateNumberOfNodesWithPlusIcon(serviceModel, nodes); + console.log('nodes', nodes); return nodes; } + calculateNumberOfNodesWithPlusIcon(serviceModel, nodes) : void { + this.numberOfPlusButton = nodes.reduce((sum, node)=>{ + let showNodeIconResult = node.showNodeIcons({data : node}, serviceModel.service.uuid); + return (!_.isNil(showNodeIconResult) && showNodeIconResult.addIcon && !showNodeIconResult.vIcon) ? sum + 1 : sum; + }, 0); + } + /*********************************************************** * return node with all his child's @@ -50,13 +62,14 @@ export class ObjectToModelTreeService { * @param parentNode - parent node. ************************************************************/ addNextLevelNodes(serviceId: string, currentModel, parentModel, levelNodeInfo: ILevelNodeInfo, parentNode): any[] { - if (!_.isNil(levelNodeInfo.childName)) { - if (!_.isNil(currentModel[levelNodeInfo.childName])) { - let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this); - parentNode.children = Object.keys(currentModel[levelNodeInfo.childName]).map((key) => - ObjectToModelTreeService.convertItemToTreeNode(serviceId, key, currentModel[levelNodeInfo.childName][key], levelNodeInfo.childName, currentModel, nextLevelNodeInfo)); - - } + if (!_.isNil(levelNodeInfo.childNames) && levelNodeInfo.childNames.length > 0) { + levelNodeInfo.childNames.forEach(function (childName) { + if (!_.isNil(currentModel[childName])) { + let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this, [childName]); + parentNode.children = Object.keys(currentModel[childName]).map((key) => + ObjectToModelTreeService.convertItemToTreeNode(serviceId, key, currentModel[childName][key], childName, currentModel, nextLevelNodeInfo)); + } + }) } return parentNode.children; } @@ -72,7 +85,7 @@ export class ObjectToModelTreeService { * @param levelNodeInfo - current levelNodeInfo object ************************************************************/ static convertItemToTreeNode(serviceId: string, name: string, currentModel: any, valueType: string, parentModel: string, levelNodeInfo: ILevelNodeInfo) { - let node = { + let node : IModelTreeNodeModel = { id: currentModel.customizationUuid || currentModel.uuid, modelCustomizationId : currentModel.customizationUuid, modelVersionId: currentModel.uuid, @@ -88,11 +101,20 @@ export class ObjectToModelTreeService { isEcompGeneratedNaming: levelNodeInfo.isEcompGeneratedNaming(currentModel, parentModel) }; - node['onAddClick'] = (node, serviceId) => levelNodeInfo.onClickAdd(node, serviceId); - node['getNodeCount'] = (node, serviceId) => levelNodeInfo.getNodeCount(node, serviceId); - node['getMenuAction'] = (node, serviceId) => levelNodeInfo.getMenuAction(node, serviceId); - node['showNodeIcons'] = (node, serviceId) => levelNodeInfo.showNodeIcons(node, serviceId); - node['typeName'] = levelNodeInfo['typeName']; + node = this.addExtraFunctionality(node, serviceId, name, currentModel, valueType, parentModel, levelNodeInfo); + return node; + } + + + static addExtraFunctionality(node, serviceId: string, name: string, currentModel: any, valueType: string, parentModel: string, levelNodeInfo: ILevelNodeInfo){ + node.onAddClick = (node, serviceId) => levelNodeInfo.onClickAdd(node, serviceId); + node.getNodeCount = (node, serviceId) => levelNodeInfo.getNodeCount(node, serviceId); + node.getMenuAction = (node, serviceId) => levelNodeInfo.getMenuAction(node, serviceId); + node.showNodeIcons = (node, serviceId) => levelNodeInfo.showNodeIcons(node, serviceId); + node.typeName = levelNodeInfo.typeName; + node.getModel = levelNodeInfo.getModel.bind(levelNodeInfo); + node.getInfo = !_.isNil(levelNodeInfo.getInfo) ? levelNodeInfo.getInfo.bind(levelNodeInfo) : ()=>{}; + node.componentInfoType = levelNodeInfo.componentInfoType; return node; } }