From dde838e1450d00d58be4a721a502b777ee5fdada Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sun, 13 Sep 2020 20:04:23 +0200 Subject: [PATCH] Session Reference --- .../FunctionLibraries/DataStorageFunctions.js | 28 ++++++++++++++++--- DesignSpace/Workspace/Workspace.js | 5 ++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js b/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js index d2257e0c4..27abaf1de 100644 --- a/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js +++ b/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js @@ -2,6 +2,7 @@ function newDataStorageFunctions() { thisObject = { addAllDataProducts: addAllDataProducts, addAllDataMineProducts: addAllDataMineProducts, + addAllTradingMineProducts: addAllTradingMineProducts, addMissingSessionReferences: addMissingSessionReferences } @@ -27,12 +28,14 @@ function newDataStorageFunctions() { we will create a Data Product. In case we find Product Definition Folders, we will recreate that structure too, using in this case Data Product Folders. */ - let dataMine = node.payload.referenceParent - scanBotArray(dataMine.sensorBots) - scanBotArray(dataMine.indicatorBots) - scanBotArray(dataMine.tradingBots) + let mine = node.payload.referenceParent + scanBotArray(mine.sensorBots) + scanBotArray(mine.indicatorBots) + scanBotArray(mine.tradingBots) function scanBotArray(botArray) { + if (botArray === undefined) {return} + for (let i = 0; i < botArray.length; i++) { let bot = botArray[i] let botProducts = functionLibraryUiObjectsFromNodes.addUIObject(node, 'Bot Products') @@ -64,6 +67,17 @@ function newDataStorageFunctions() { } } + function addAllTradingMineProducts(node, rootNodes, functionLibraryUiObjectsFromNodes) { + for (let i = 0; i < rootNodes.length; i++) { + let rootNode = rootNodes[i] + + if (rootNode.type === 'Trading Mine') { + let tradingMineProducts = functionLibraryUiObjectsFromNodes.addUIObject(node, 'Trading Mine Products') + tradingMineProducts.payload.referenceParent = rootNode + } + } + } + function addMissingSessionReferences(node, rootNodes, functionLibraryUiObjectsFromNodes) { let networkNode = findNodeInNodeMesh(node, 'Network Node', true, false, true, false) if (networkNode === undefined) {return} @@ -84,6 +98,12 @@ function newDataStorageFunctions() { if (isMissingChildren(node, session, true) === true) { let sessionReference = functionLibraryUiObjectsFromNodes.addUIObject(node, 'Session Reference') sessionReference.payload.referenceParent = session + /* + Now I will connect the Session Reference child that is auto created with the market + where the Session was found. + */ + let marketTradingTasks = findNodeInNodeMesh(session, 'Market Trading Tasks', true, false, true, false) + sessionReference.singleMarketTradingData.payload.referenceParent = marketTradingTasks.payload.referenceParent } } } diff --git a/DesignSpace/Workspace/Workspace.js b/DesignSpace/Workspace/Workspace.js index 2f71bbcd1..ec4a97271 100644 --- a/DesignSpace/Workspace/Workspace.js +++ b/DesignSpace/Workspace/Workspace.js @@ -716,6 +716,11 @@ function newWorkspace() { functionLibraryDataStorageFunctions.addAllDataMineProducts(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes) } break + case 'Add All Trading Mine Products': + { + functionLibraryDataStorageFunctions.addAllTradingMineProducts(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes) + } + break case 'Add Missing Session References': { functionLibraryDataStorageFunctions.addMissingSessionReferences(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes)