From 900c1a9f88271b6a2f10bc46f2af1b2a734fd049 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 21 Oct 2019 12:37:20 +0200 Subject: [PATCH] Announcements in Phases --- FloatingSpace/StrategyPart.js | 2 +- StrategySpace/Workspace/FunctionLibraries/NodeChildren.js | 7 +++++++ StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js | 6 ++++++ StrategySpace/Workspace/FunctionLibraries/OnFocus.js | 6 ++++++ .../Workspace/FunctionLibraries/PartsFromNodes.js | 8 ++++++++ StrategySpace/Workspace/FunctionLibraries/ProtocolNode.js | 7 +++++++ StrategySpace/Workspace/FunctionLibraries/ShortcutKeys.js | 6 ++++++ 7 files changed, 41 insertions(+), 1 deletion(-) diff --git a/FloatingSpace/StrategyPart.js b/FloatingSpace/StrategyPart.js index 2f4bdb194..295a5e5eb 100644 --- a/FloatingSpace/StrategyPart.js +++ b/FloatingSpace/StrategyPart.js @@ -284,7 +284,7 @@ function newStrategyPart () { compatibleSubType = undefined break case 'Announcement': - compatibleType = '->' + 'Telegram Bot' + '->' + 'Trigger On Event' + '->' + 'Trigger Off Event' + '->' + 'Take Position Event' + '->' + 'Next Phase Event' + '->' + compatibleType = '->' + 'Telegram Bot' + '->' + 'Trigger On Event' + '->' + 'Trigger Off Event' + '->' + 'Take Position Event' + '->' + 'Next Phase Event' + '->' + '->' + 'Phase' + '->' compatibleSubType = undefined break case 'Task Manager': diff --git a/StrategySpace/Workspace/FunctionLibraries/NodeChildren.js b/StrategySpace/Workspace/FunctionLibraries/NodeChildren.js index 882edb1eb..2a2ff97c3 100644 --- a/StrategySpace/Workspace/FunctionLibraries/NodeChildren.js +++ b/StrategySpace/Workspace/FunctionLibraries/NodeChildren.js @@ -920,6 +920,13 @@ function newNodeChildren () { response.childIndex = response.childrenCount } } + for (let i = 0; i < parentNode.announcements.length; i++) { + let child = parentNode.announcements[i] + response.childrenCount++ + if (child.id === childNode.id) { + response.childIndex = response.childrenCount + } + } return response } diff --git a/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js b/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js index 544556f49..66597b412 100644 --- a/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js +++ b/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js @@ -1057,6 +1057,12 @@ function newNodeDeleter () { if (node.nextPhaseEvent !== undefined) { deleteEvent(node.nextPhaseEvent, rootNodes) } + + if (node.announcements !== undefined) { + while (node.announcements.length > 0) { + deleteAnnouncement(node.announcements[0], rootNodes) + } + } destroyPart(node) cleanNode(node) } diff --git a/StrategySpace/Workspace/FunctionLibraries/OnFocus.js b/StrategySpace/Workspace/FunctionLibraries/OnFocus.js index a0e8b4a94..77fa1621a 100644 --- a/StrategySpace/Workspace/FunctionLibraries/OnFocus.js +++ b/StrategySpace/Workspace/FunctionLibraries/OnFocus.js @@ -81,6 +81,12 @@ function newOnFocus () { if (child !== undefined) { return child } + for (let m = 0; m < node.announcements.length; m++) { + child = getNodeThatIsOnFocus(node.announcements[m]) + if (child !== undefined) { + return child + } + } if (node.payload.uiObject.isOnFocus === true) { return node } else { diff --git a/StrategySpace/Workspace/FunctionLibraries/PartsFromNodes.js b/StrategySpace/Workspace/FunctionLibraries/PartsFromNodes.js index d36de9dae..3498dddc0 100644 --- a/StrategySpace/Workspace/FunctionLibraries/PartsFromNodes.js +++ b/StrategySpace/Workspace/FunctionLibraries/PartsFromNodes.js @@ -98,6 +98,13 @@ function newPartsFromNodes () { if (node.nextPhaseEvent !== undefined) { createPartFromNode(node.nextPhaseEvent, phase, phase) } + if (node.announcements === undefined) { + node.announcements = [] + } + for (let m = 0; m < node.announcements.length; m++) { + let announcement = node.announcements[m] + createPartFromNode(announcement, node, node) + } return } case 'Stop': { @@ -1190,6 +1197,7 @@ function newPartsFromNodes () { let phase = { name: 'New Phase', + announcements: [], formula: { code: DEFAULT_FORMULA_TEXT }, diff --git a/StrategySpace/Workspace/FunctionLibraries/ProtocolNode.js b/StrategySpace/Workspace/FunctionLibraries/ProtocolNode.js index 3b934e5aa..4d28635ed 100644 --- a/StrategySpace/Workspace/FunctionLibraries/ProtocolNode.js +++ b/StrategySpace/Workspace/FunctionLibraries/ProtocolNode.js @@ -111,9 +111,16 @@ function newProtocolNode () { type: node.type, subType: node.subType, name: node.name, + announcements: [], formula: getProtocolNode(node.formula, removePersonalData, parseCode, includeIds, includePayload), nextPhaseEvent: getProtocolNode(node.nextPhaseEvent, removePersonalData, parseCode, includeIds, includePayload) } + for (let m = 0; m < node.announcements.length; m++) { + let announcement = getProtocolNode(node.announcements[m], removePersonalData, parseCode, includeIds, includePayload) + if (announcement !== undefined) { + object.announcements.push(announcement) + } + } if (includeIds) { object.id = node.id } diff --git a/StrategySpace/Workspace/FunctionLibraries/ShortcutKeys.js b/StrategySpace/Workspace/FunctionLibraries/ShortcutKeys.js index 70b5620ce..ce6e6b4f5 100644 --- a/StrategySpace/Workspace/FunctionLibraries/ShortcutKeys.js +++ b/StrategySpace/Workspace/FunctionLibraries/ShortcutKeys.js @@ -81,6 +81,12 @@ function newShortcutKeys () { if (child !== undefined) { return child } + for (let m = 0; m < node.announcements.length; m++) { + child = getNodeByShortcutKey(node.announcements[m], searchingKey) + if (child !== undefined) { + return child + } + } if (node.payload.uiObject.shortcutKey === searchingKey) { return node } else {