From 8b741aeddcb2eb25786dea7e40d9346191cea431 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Tue, 28 May 2019 10:45:44 +0200 Subject: [PATCH] Trading System can be deleted --- FloatingSpace/StrategyPart.js | 10 ++++++++-- FloatingSpace/StrategyPartConstructor.js | 20 +++++++++++++++---- .../FunctionLibraries/NodeDeleter.js | 15 ++++++++++++++ StrategySpace/Workspace/Workspace.js | 4 ++++ 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/FloatingSpace/StrategyPart.js b/FloatingSpace/StrategyPart.js index 034e6ee2b..a15ebd197 100644 --- a/FloatingSpace/StrategyPart.js +++ b/FloatingSpace/StrategyPart.js @@ -20,6 +20,7 @@ function newStrategyPart () { isRunning: undefined, run: run, setRunningStatus: setRunningStatus, + setNotRunningStatus: setNotRunningStatus, getReadyToAttach: getReadyToAttach, showAvailabilityToAttach: showAvailabilityToAttach, highlight: highlight, @@ -378,16 +379,21 @@ function newStrategyPart () { } function run () { - canvas.strategySpace.workspace.tradingSystem = thisObject.payload.node - canvas.cockpitSpace.restartSimulation.restart() setRunningStatus() + canvas.cockpitSpace.restartSimulation.restart() } function setRunningStatus () { + canvas.strategySpace.workspace.tradingSystem = thisObject.payload.node thisObject.isRunning = true runningCounter = 30 } + function setNotRunningStatus () { + canvas.strategySpace.workspace.tradingSystem = undefined + thisObject.isRunning = false + } + function iconPhysics () { icon = canvas.strategySpace.iconByPartType.get(thisObject.payload.node.type) executingIcon = canvas.strategySpace.iconCollection.get('attractive') diff --git a/FloatingSpace/StrategyPartConstructor.js b/FloatingSpace/StrategyPartConstructor.js index 70abe6388..563074a5d 100644 --- a/FloatingSpace/StrategyPartConstructor.js +++ b/FloatingSpace/StrategyPartConstructor.js @@ -100,7 +100,7 @@ function newStrategyPartConstructor () { rawRadius: 8, targetRadius: 0, currentRadius: 0, - angle: -60 + angle: -80 }, { action: 'Save Trading System', @@ -115,7 +115,19 @@ function newStrategyPartConstructor () { rawRadius: 8, targetRadius: 0, currentRadius: 0, - angle: -20 + angle: -40 + }, + { + action: 'Delete Trading System', + actionFunction: payload.onMenuItemClick, + label: 'Delete Trading System', + visible: false, + iconPathOn: 'trash', + iconPathOff: 'trash', + rawRadius: 8, + targetRadius: 0, + currentRadius: 0, + angle: 0 }, { action: 'New Strategy', @@ -128,7 +140,7 @@ function newStrategyPartConstructor () { rawRadius: 8, targetRadius: 0, currentRadius: 0, - angle: 20 + angle: 40 }, { action: 'Download', @@ -140,7 +152,7 @@ function newStrategyPartConstructor () { rawRadius: 8, targetRadius: 0, currentRadius: 0, - angle: 60 + angle: 80 }] break } diff --git a/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js b/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js index e449a3ace..978e1f55f 100644 --- a/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js +++ b/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js @@ -1,5 +1,6 @@ function newNodeDeleter () { thisObject = { + deleteTradingSystem: deleteTradingSystem, deleteStrategy: deleteStrategy, deleteTriggerStage: deleteTriggerStage, deleteOpenStage: deleteOpenStage, @@ -21,6 +22,20 @@ function newNodeDeleter () { canvas.floatingSpace.strategyPartConstructor.destroyStrategyPart(node.payload) } + function deleteTradingSystem (node, rootNodes) { + if (node.payload.uiObject.isRunning === true) { + strategyPart.setNotRunningStatus() + } + + while (node.strategies.length > 0) { + deleteStrategy(node.strategies[0]) + } + + completeDeletion(node, rootNodes) + destroyPart(node) + cleanNode(node) + } + function deleteStrategy (node, rootNodes) { let payload = node.payload if (payload.parentNode !== undefined) { diff --git a/StrategySpace/Workspace/Workspace.js b/StrategySpace/Workspace/Workspace.js index 37b31e8ba..24eaaa47b 100644 --- a/StrategySpace/Workspace/Workspace.js +++ b/StrategySpace/Workspace/Workspace.js @@ -204,6 +204,10 @@ function newWorkspace () { functionLibraryPartsFromNodes.addCode(payload.node) } break + case 'Delete Trading System': { + functionLibraryNodeDeleter.deleteTradingSystem(payload.node, rootNodes) + break + } case 'Delete Strategy': { functionLibraryNodeDeleter.deleteStrategy(payload.node, rootNodes) break