From 960930c6bf85ae228ef232c06f7dbc35b65fa728 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 14 Sep 2020 15:52:31 +0200 Subject: [PATCH] Bug Fixed --- .../ChartingSpaceFunctions.js | 18 ++++++++++++++++-- DesignSpace/Workspace/Workspace.js | 2 +- Panels/Layer.js | 8 ++++---- Utilities/Meshes.js | 18 ++++++++++-------- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/DesignSpace/Workspace/FunctionLibraries/ChartingSpaceFunctions.js b/DesignSpace/Workspace/FunctionLibraries/ChartingSpaceFunctions.js index ce9e23bb4..f2394e699 100644 --- a/DesignSpace/Workspace/FunctionLibraries/ChartingSpaceFunctions.js +++ b/DesignSpace/Workspace/FunctionLibraries/ChartingSpaceFunctions.js @@ -6,7 +6,7 @@ function newChartingSpaceFunctions() { return thisObject - function addAllMineLayers(node, functionLibraryUiObjectsFromNodes) { + function addAllMineLayers(node, rootNodes, functionLibraryUiObjectsFromNodes, functionLibraryNodeDeleter) { /* Validations to see if we can do this or not. */ if (node.payload === undefined) { return } @@ -45,6 +45,20 @@ function newChartingSpaceFunctions() { undefined, functionLibraryUiObjectsFromNodes ) + /* + There are some layers that should not exist, for example the ones related to Data Products + that do not have a plotter module. Since our previous action created all layers no matter + what, we need now to delete all the ones that do not have a plotter module. + */ + let allLayers = nodeBranchToArray(botLayers, 'Layer') + for (let j = 0; j < allLayers.length; j++) { + let layer = allLayers[j] + + let plotterModule = findNodeInNodeMesh(layer, 'Plotter Module', undefined, true, false, false, true) + if (plotterModule === undefined) { + functionLibraryNodeDeleter.deleteUIObject(layer, rootNodes) + } + } } } } @@ -120,7 +134,7 @@ function newChartingSpaceFunctions() { for (let k = 0; k < 3; k++) { let timelineChart = functionLibraryUiObjectsFromNodes.addUIObject(timeMachine, 'Timeline Chart') - + timelineChart.layersManager.payload.referenceParent = mineProduct timelineChart.payload.floatingObject.collapseToggle() timelineChart.layersManager.payload.floatingObject.collapseToggle() diff --git a/DesignSpace/Workspace/Workspace.js b/DesignSpace/Workspace/Workspace.js index eded530de..6495c84e4 100644 --- a/DesignSpace/Workspace/Workspace.js +++ b/DesignSpace/Workspace/Workspace.js @@ -742,7 +742,7 @@ function newWorkspace() { break case 'Add All Mine Layers': { - functionLibraryChartingSpaceFunctions.addAllMineLayers(payload.node, functionLibraryUiObjectsFromNodes) + functionLibraryChartingSpaceFunctions.addAllMineLayers(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes, functionLibraryNodeDeleter) } break case 'Add Missing Time Machines': diff --git a/Panels/Layer.js b/Panels/Layer.js index b917d2c72..f791c5658 100644 --- a/Panels/Layer.js +++ b/Panels/Layer.js @@ -161,8 +161,8 @@ function newLayer() { '->Layer->' + 'Data Product->' + 'Data Product Folder->Data Product Folder->Data Product Folder->Data Product Folder->Data Product Folder->' + - 'Bot Products->Data Mine Products->' + - 'Single Market Data->Exchange Data Products->' + + 'Bot Products->Data Mine Products->Trading Mine Products->' + + 'Single Market Data->Single Market Trading Data->Exchange Data Products->' + 'Session Reference->Session Independent Data->Session Based Data->Exchange Sessions->Session Based Data->Data Storage->Network Node->' + 'Data Storage->Network Node->' + 'Backtesting Session->Paper Trading Session->Fordward Testing Session->Live Trading Session->' + @@ -265,9 +265,9 @@ function newLayer() { return } - thisObject.plotterModule = findNodeInNodeMesh(thisObject.definition, 'Plotter Module', undefined, false, true, true, true) + thisObject.plotterModule = findNodeInNodeMesh(thisObject.definition, 'Plotter Module', undefined, false, false, false, true) if (thisObject.plotterModule === undefined) { - thisObject.payload.uiObject.setErrorMessage('Market Quoted Asset not Found') + thisObject.payload.uiObject.setErrorMessage('Plotter Module not Found') return } diff --git a/Utilities/Meshes.js b/Utilities/Meshes.js index ae15bf758..f0d474ff9 100644 --- a/Utilities/Meshes.js +++ b/Utilities/Meshes.js @@ -4,13 +4,15 @@ function findNodeInNodeMesh(node, nodeType, nodeName, connectedViaPayload, findI returns the first instance found. Please specify either nodeType or nodeName. */ + const MAX_DEPTH = 100 let nodeFound - scanNodeMesh(node) + scanNodeMesh(node, 0) return nodeFound - function scanNodeMesh(startingNode) { + function scanNodeMesh(startingNode, depth) { if (startingNode === undefined) { return } if (nodeFound !== undefined) { return } + if (depth >= MAX_DEPTH) {return} let nodeDefinition = APP_SCHEMA_MAP.get(startingNode.type) if (nodeDefinition === undefined) { return } @@ -37,14 +39,14 @@ function findNodeInNodeMesh(node, nodeType, nodeName, connectedViaPayload, findI switch (property.type) { case 'node': { - scanNodeMesh(startingNode[property.name]) + scanNodeMesh(startingNode[property.name], depth + 1) } break case 'array': { let startingNodePropertyArray = startingNode[property.name] if (startingNodePropertyArray !== undefined) { for (let m = 0; m < startingNodePropertyArray.length; m++) { - scanNodeMesh(startingNodePropertyArray[m]) + scanNodeMesh(startingNodePropertyArray[m], depth + 1) } } break @@ -58,11 +60,11 @@ function findNodeInNodeMesh(node, nodeType, nodeName, connectedViaPayload, findI if (findInParents === true) { if (connectedViaPayload === true) { if (startingNode.payload.parentNode !== undefined) { - scanNodeMesh(startingNode.payload.parentNode) + scanNodeMesh(startingNode.payload.parentNode, depth + 1) } } else { if (startingNode.parentNode !== undefined) { - scanNodeMesh(startingNode.parentNode) + scanNodeMesh(startingNode.parentNode, depth + 1) } } } @@ -71,11 +73,11 @@ function findNodeInNodeMesh(node, nodeType, nodeName, connectedViaPayload, findI if (findInReferenceParents === true) { if (connectedViaPayload === true) { if (startingNode.payload.referenceParent !== undefined) { - scanNodeMesh(startingNode.payload.referenceParent) + scanNodeMesh(startingNode.payload.referenceParent, depth + 1) } } else { if (startingNode.referenceParent !== undefined) { - scanNodeMesh(startingNode.referenceParent) + scanNodeMesh(startingNode.referenceParent, depth + 1) } } }