From 50bd3098268a6d64eb0dde5e7f37a803c91d6b0a Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Fri, 1 Nov 2019 14:04:35 +0100 Subject: [PATCH] Execution Started Event part 1 --- .../FunctionLibraries/ChainAttachDetach.js | 11 ++++++ .../FunctionLibraries/NodeChildren.js | 12 ++++++ .../FunctionLibraries/NodeDeleter.js | 21 ++++++++++ .../Workspace/FunctionLibraries/OnFocus.js | 7 ++++ .../FunctionLibraries/ProtocolNode.js | 14 +++++++ .../FunctionLibraries/UiObjectsFromNodes.js | 16 ++++++++ DesignerSpace/Workspace/Workspace.js | 9 +++++ FloatingSpace/UiObject.js | 6 ++- FloatingSpace/UiObjectConstructor.js | 38 +++++++++++++++++++ Spaces/DesignerSpace.js | 1 + 10 files changed, 134 insertions(+), 1 deletion(-) diff --git a/DesignerSpace/Workspace/FunctionLibraries/ChainAttachDetach.js b/DesignerSpace/Workspace/FunctionLibraries/ChainAttachDetach.js index 97445261d..c9547d6a0 100644 --- a/DesignerSpace/Workspace/FunctionLibraries/ChainAttachDetach.js +++ b/DesignerSpace/Workspace/FunctionLibraries/ChainAttachDetach.js @@ -66,6 +66,11 @@ function newChainAttachDetach () { completeDetachment(node, rootNodes) return } + case 'Execution Started Event': { + node.payload.parentNode.executionStartedEvent = undefined + completeDetachment(node, rootNodes) + return + } case 'Execution Finished Event': { node.payload.parentNode.executionFinishedEvent = undefined completeDetachment(node, rootNodes) @@ -574,6 +579,12 @@ function newChainAttachDetach () { completeAttachment(node, rootNodes) } break + case 'Execution Started Event': { + node.payload.parentNode = attachToNode + node.payload.chainParent = attachToNode + node.payload.parentNode.executionStartedEvent = node + completeAttachment(node, rootNodes) + } case 'Execution Finished Event': { node.payload.parentNode = attachToNode node.payload.chainParent = attachToNode diff --git a/DesignerSpace/Workspace/FunctionLibraries/NodeChildren.js b/DesignerSpace/Workspace/FunctionLibraries/NodeChildren.js index 9346f5ff3..cc67770d1 100644 --- a/DesignerSpace/Workspace/FunctionLibraries/NodeChildren.js +++ b/DesignerSpace/Workspace/FunctionLibraries/NodeChildren.js @@ -32,6 +32,9 @@ function newNodeChildren () { case 'Status Rerport': { return countChildrenStatusRerport(parentNode, childNode) } + case 'Execution Started Event': { + return countChildrenExecutionStartedEvent(parentNode, childNode) + } case 'Execution Finished Event': { return countChildrenExecutionFinishedEvent(parentNode, childNode) } @@ -454,6 +457,14 @@ function newNodeChildren () { return response } + function countChildrenExecutionStartedEvent (parentNode, childNode) { + let response = { + childrenCount: 0, + childIndex: undefined + } + return response + } + function countChildrenExecutionFinishedEvent (parentNode, childNode) { let response = { childrenCount: 0, @@ -461,6 +472,7 @@ function newNodeChildren () { } return response } + function countChildrenCalculationsProcedure (parentNode, childNode) { let response = { childrenCount: 0, diff --git a/DesignerSpace/Workspace/FunctionLibraries/NodeDeleter.js b/DesignerSpace/Workspace/FunctionLibraries/NodeDeleter.js index 0edf7cb0c..b953bacec 100644 --- a/DesignerSpace/Workspace/FunctionLibraries/NodeDeleter.js +++ b/DesignerSpace/Workspace/FunctionLibraries/NodeDeleter.js @@ -9,6 +9,7 @@ function newNodeDeleter () { deleteTradingBot: deleteTradingBot, deleteProcessDefinition: deleteProcessDefinition, deleteStatusReport: deleteStatusReport, + deleteExecutionStartedEvent: deleteExecutionStartedEvent, deleteExecutionFinishedEvent: deleteExecutionFinishedEvent, deleteCalculationsProcedure: deleteCalculationsProcedure, deleteDataBuildingProcedure: deleteDataBuildingProcedure, @@ -118,6 +119,10 @@ function newNodeDeleter () { deleteStatusReport(rootNode, rootNodes) break } + case 'Execution Started Event': { + deleteExecutionStartedEvent(rootNode, rootNodes) + break + } case 'Execution Finished Event': { deleteExecutionFinishedEvent(rootNode, rootNodes) break @@ -565,6 +570,10 @@ function newNodeDeleter () { deleteStatusReport(node.statusReport, rootNodes) } + if (node.executionStartedEvent !== undefined) { + deleteExecutionStartedEvent(node.executionStartedEvent, rootNodes) + } + if (node.executionFinishedEvent !== undefined) { deleteExecutionFinishedEvent(node.executionFinishedEvent, rootNodes) } @@ -612,6 +621,18 @@ function newNodeDeleter () { cleanNode(node) } + function deleteExecutionStartedEvent (node, rootNodes) { + let payload = node.payload + + if (payload.parentNode !== undefined) { + payload.parentNode.executionStartedEvent = undefined + } + + completeDeletion(node, rootNodes) + destroyUiObject(node) + cleanNode(node) + } + function deleteExecutionFinishedEvent (node, rootNodes) { let payload = node.payload diff --git a/DesignerSpace/Workspace/FunctionLibraries/OnFocus.js b/DesignerSpace/Workspace/FunctionLibraries/OnFocus.js index 38801b894..c5a708b00 100644 --- a/DesignerSpace/Workspace/FunctionLibraries/OnFocus.js +++ b/DesignerSpace/Workspace/FunctionLibraries/OnFocus.js @@ -871,6 +871,13 @@ function newOnFocus () { return } } + case 'Execution Started Event': { + if (node.payload.uiObject.isOnFocus === true) { + return node + } else { + return + } + } case 'Execution Finished Event': { if (node.payload.uiObject.isOnFocus === true) { return node diff --git a/DesignerSpace/Workspace/FunctionLibraries/ProtocolNode.js b/DesignerSpace/Workspace/FunctionLibraries/ProtocolNode.js index 2af5c36e2..099fd9f5b 100644 --- a/DesignerSpace/Workspace/FunctionLibraries/ProtocolNode.js +++ b/DesignerSpace/Workspace/FunctionLibraries/ProtocolNode.js @@ -1225,6 +1225,20 @@ function newProtocolNode () { } return object } + case 'Execution Started Event': { + let object = { + type: node.type, + subType: node.subType, + name: node.name + } + if (includeIds) { + object.id = node.id + } + if (includePayload) { + object.savedPayload = getSavedPayload(node, includeReferences) + } + return object + } case 'Execution Finished Event': { let object = { type: node.type, diff --git a/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js b/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js index 74e7fe291..ebdb03990 100644 --- a/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js +++ b/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js @@ -9,6 +9,7 @@ function newUiObjectsFromNodes () { addProcessDefinition: addProcessDefinition, addMissingProcessDefinitionItems: addMissingProcessDefinitionItems, addStatusReport: addStatusReport, + addExecutionStartedEvent: addExecutionStartedEvent, addExecutionFinishedEvent: addExecutionFinishedEvent, addCalculationsProcedure: addCalculationsProcedure, addDataBuildingProcedure: addDataBuildingProcedure, @@ -791,6 +792,10 @@ function newUiObjectsFromNodes () { } return } + case 'Execution Started Event': { + createUiObject(node.type, node.name, node, parentNode, chainParent, node.type) + return + } case 'Execution Finished Event': { let referenceChildren if (mapOfReferenceParents !== undefined) { @@ -1071,6 +1076,17 @@ function newUiObjectsFromNodes () { return node.statusReport } + function addExecutionStartedEvent (node) { + if (node.executionStartedEvent === undefined) { + node.executionStartedEvent = { + type: 'Execution Started Event', + name: 'New Execution Started Event' + } + createUiObject(node.executionStartedEvent.type, node.executionStartedEvent.name, node.executionStartedEvent, node, node) + } + return node.executionStartedEvent + } + function addExecutionFinishedEvent (node) { if (node.executionFinishedEvent === undefined) { node.executionFinishedEvent = { diff --git a/DesignerSpace/Workspace/Workspace.js b/DesignerSpace/Workspace/Workspace.js index fd37e0cac..1783221ed 100644 --- a/DesignerSpace/Workspace/Workspace.js +++ b/DesignerSpace/Workspace/Workspace.js @@ -351,6 +351,11 @@ function newWorkspace () { functionLibraryUiObjectsFromNodes.addStatusReport(payload.node) } break + case 'Add Execution Started Event': + { + functionLibraryUiObjectsFromNodes.addExecutionStartedEvent(payload.node) + } + break case 'Add Execution Finished Event': { functionLibraryUiObjectsFromNodes.addExecutionFinishedEvent(payload.node) @@ -635,6 +640,10 @@ function newWorkspace () { functionLibraryNodeDeleter.deleteStatusReport(payload.node, thisObject.workspaceNode.rootNodes) break } + case 'Delete Execution Started Event': { + functionLibraryNodeDeleter.deleteExecutionStartedEvent(payload.node, thisObject.workspaceNode.rootNodes) + break + } case 'Delete Execution Finished Event': { functionLibraryNodeDeleter.deleteExecutionFinishedEvent(payload.node, thisObject.workspaceNode.rootNodes) break diff --git a/FloatingSpace/UiObject.js b/FloatingSpace/UiObject.js index b4b136a09..de7f7eaf0 100644 --- a/FloatingSpace/UiObject.js +++ b/FloatingSpace/UiObject.js @@ -232,6 +232,10 @@ function newUiObject () { compatibleType = '->' + 'Process Definition' + '->' compatibleSubType = undefined break + case 'Execution Started Event': + compatibleType = '->' + 'Process Definition' + '->' + compatibleSubType = undefined + break case 'Execution Finished Event': compatibleType = '->' + 'Process Definition' + '->' compatibleSubType = undefined @@ -512,7 +516,7 @@ function newUiObject () { if (compatibleType.indexOf('->' + nearbyNode.type + '->') >= 0) { /* Discard objects with busy coonection ports */ if (thisObject.payload.node.type === 'Status Report' && nearbyNode.statusReport !== undefined) { continue } - if (thisObject.payload.node.type === 'Execution Finished Event' && nearbyNode.executionStartedEvent !== undefined) { continue } + if (thisObject.payload.node.type === 'Execution Started Event' && nearbyNode.executionStartedEvent !== undefined) { continue } if (thisObject.payload.node.type === 'Execution Finished Event' && nearbyNode.executionFinishedEvent !== undefined) { continue } if (thisObject.payload.node.type === 'Calculations Procedure' && nearbyNode.calculations !== undefined) { continue } if (thisObject.payload.node.type === 'Data Building Procedure' && nearbyNode.dataBuilding !== undefined) { continue } diff --git a/FloatingSpace/UiObjectConstructor.js b/FloatingSpace/UiObjectConstructor.js index f3453c4e6..2898afc2f 100644 --- a/FloatingSpace/UiObjectConstructor.js +++ b/FloatingSpace/UiObjectConstructor.js @@ -785,6 +785,40 @@ function newUiObjectConstructor () { ) break } + case 'Execution Started Event': { + addLeftIcons(menuItemsInitialValues, floatingObject) + menuItemsInitialValues.push( + { + action: 'Delete Execution Started Event', + askConfirmation: true, + confirmationLabel: 'Confirm to Delete', + actionFunction: payload.onMenuItemClick, + label: 'Delete Event', + visible: true, + iconPathOn: 'delete', + iconPathOff: 'delete', + rawRadius: 8, + targetRadius: 0, + currentRadius: 0, + angle: -15 + } + ) + menuItemsInitialValues.push( + { + action: 'Share', + actionFunction: payload.onMenuItemClick, + label: 'Share', + visible: true, + iconPathOn: 'menu-share', + iconPathOff: 'menu-share', + rawRadius: 8, + targetRadius: 0, + currentRadius: 0, + angle: 15 + } + ) + break + } case 'Execution Finished Event': { addLeftIcons(menuItemsInitialValues, floatingObject) menuItemsInitialValues.push( @@ -4461,6 +4495,10 @@ function newUiObjectConstructor () { level_3() break } + case 'Execution Started Event': { + level_3() + break + } case 'Execution Finished Event': { level_3() break diff --git a/Spaces/DesignerSpace.js b/Spaces/DesignerSpace.js index cae19bd1f..f5142e240 100644 --- a/Spaces/DesignerSpace.js +++ b/Spaces/DesignerSpace.js @@ -96,6 +96,7 @@ function newDesignerSpace () { ['Trading Bot', 'bot-trading'], ['Process Definition', 'process-definition'], ['Status Report', 'text'], + ['Execution Started Event', 'pantone'], ['Execution Finished Event', 'pantone'], ['Calculations Procedure', 'calculations-procedure'], ['Data Building Procedure', 'data-building-procedure'],