Merge pull request #1362 from harrellbm/develop

Harden Referencing
This commit is contained in:
Luis Fernando Molina authored and GitHub committed 2021-08-03 12:17:26 -04:00
commit cf4f22d267
13 files changed
+57 -47

No files matched your search

@@ -141,7 +141,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() {
let mineProducts
let timeMachine = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(dashboard, 'Time Machine')
let exchange = market.payload.parentNode.payload.parentNode
timeMachine.payload.referenceParent = session
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(timeMachine, session)
timeMachine.name = session.name + ' ' + session.type + ' ' + networkNode.name + ' ' + exchange.name + ' ' + market.name
timeMachine.payload.floatingObject.collapseToggle()
timeMachine.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180
@@ -170,7 +170,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() {
for (let k = 0; k < 3; k++) {
let timelineChart = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(timeMachine, 'Timeline Chart')
timelineChart.layerManager.payload.referenceParent = mineProduct
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(timelineChart.layerManager, mineProduct)
timelineChart.payload.floatingObject.collapseToggle()
timelineChart.layerManager.payload.floatingObject.collapseToggle()
timelineChart.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180
@@ -229,7 +229,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() {
for (let k = 0; k < 3; k++) {
let timelineChart = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(timeMachine, 'Timeline Chart')
timelineChart.layerManager.payload.referenceParent = mineProduct
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(timelineChart.layerManager, mineProduct)
timelineChart.payload.floatingObject.collapseToggle()
timelineChart.layerManager.payload.floatingObject.collapseToggle()
timelineChart.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180
@@ -287,7 +287,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() {
*/
mineProduct.payload.uiObject.invisiblePhysics()
timelineChart.name = mineProduct.name + ' Data'
timelineChart.layerManager.payload.referenceParent = mineProduct
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(timelineChart.layerManager, mineProduct)
timelineChart.payload.floatingObject.collapseToggle()
timelineChart.layerManager.payload.floatingObject.collapseToggle()
timelineChart.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180
@@ -322,13 +322,13 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() {
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, testingTradingTasks, true) === true) {
let dashboard = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Dashboard')
dashboard.payload.referenceParent = testingTradingTasks
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(dashboard, testingTradingTasks)
dashboard.name = testingTradingTasks.type + ' ' + networkNode.name
}
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, productionTradingTasks, true) === true) {
let dashboard = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Dashboard')
dashboard.payload.referenceParent = productionTradingTasks
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(dashboard, productionTradingTasks)
dashboard.name = productionTradingTasks.type + ' ' + networkNode.name
}
}
@@ -347,7 +347,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() {
if (projectDefinition !== undefined) {
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, projectDefinition, true) === true) {
let projectTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Project Dashboards', undefined, project)
projectTasks.payload.referenceParent = projectDefinition
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(projectTasks, projectDefinition)
}
}
}
@@ -363,7 +363,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() {
for (let i = 0; i < plotterModule.panels.length; i++) {
let plotterPanel = plotterModule.panels[i]
let layerPanel = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Layer Panel')
layerPanel.payload.referenceParent = plotterPanel
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(layerPanel, plotterPanel)
}
}
@@ -381,7 +381,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() {
for (let i = 0; i < plotterModule.shapes.polygons.length; i++) {
let polygon = plotterModule.shapes.polygons[i]
let layerPolygon = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Layer Polygon')
layerPolygon.payload.referenceParent = polygon
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(layerPolygon, polygon)
}
}
@@ -199,8 +199,8 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() {
newMarket.quotedAsset.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_100X
newMarket.baseAsset.payload.floatingObject.arrangementStyle = ARRANGEMENT_STYLE.CONCAVE
newMarket.quotedAsset.payload.floatingObject.arrangementStyle = ARRANGEMENT_STYLE.CONCAVE
newMarket.baseAsset.payload.referenceParent = baseAsset
newMarket.quotedAsset.payload.referenceParent = quotedAsset
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(newMarket.baseAsset, baseAsset)
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(newMarket.quotedAsset, quotedAsset)
currentMarkets.set(name, newMarket)
}
@@ -76,7 +76,7 @@ function newFoundationsFunctionLibraryDataStorageFunctions() {
if (rootNode.type === 'Data Mine') {
let dataMineProducts = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Data Mine Products')
dataMineProducts.payload.referenceParent = rootNode
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(dataMineProducts, rootNode)
}
}
}
@@ -87,7 +87,7 @@ function newFoundationsFunctionLibraryDataStorageFunctions() {
if (rootNode.type === 'Trading Mine') {
let tradingMineProducts = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Trading Mine Products')
tradingMineProducts.payload.referenceParent = rootNode
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(tradingMineProducts, rootNode)
}
}
}
@@ -98,7 +98,7 @@ function newFoundationsFunctionLibraryDataStorageFunctions() {
if (rootNode.type === 'Learning Mine') {
let learningMineProducts = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Learning Mine Products')
learningMineProducts.payload.referenceParent = rootNode
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(learningMineProducts, rootNode)
}
}
}
@@ -155,7 +155,7 @@ function newFoundationsFunctionLibraryDataStorageFunctions() {
function createSessionReference(node, session, nodeType) {
let sessionReference = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, nodeType)
sessionReference.payload.referenceParent = session
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(sessionReference, session)
}
function addMissingMarketDataProducts(node, rootNodes) {
@@ -179,7 +179,7 @@ function newFoundationsFunctionLibraryDataStorageFunctions() {
let market = marketsArray[i]
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, market, true) === true) {
let marketDataProducts = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, newNodeType)
marketDataProducts.payload.referenceParent = market
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(marketDataProducts, market)
}
}
}
@@ -207,7 +207,7 @@ function newFoundationsFunctionLibraryDataStorageFunctions() {
let cryptoExchange = cryptoExchanges.exchanges[k]
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, cryptoExchange, true) === true) {
let exchange = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, newNodeType)
exchange.payload.referenceParent = cryptoExchange
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(exchange, cryptoExchange)
}
}
}
@@ -240,7 +240,7 @@ function newFoundationsFunctionLibraryDataStorageFunctions() {
if (projectDefinition !== undefined) {
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, projectDefinition, true) === true) {
let projectTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, newNodeType, undefined, project)
projectTasks.payload.referenceParent = projectDefinition
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(projectTasks, projectDefinition)
}
}
}
@@ -96,7 +96,7 @@ function newFoundationsFunctionLibraryMineFunctions() {
if (rootNode.type === 'Data Mine') {
let dataMineDataDependencies = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Data Mine Data Dependencies')
dataMineDataDependencies.payload.referenceParent = rootNode
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(dataMineDataDependencies, rootNode)
}
}
}
@@ -167,10 +167,21 @@ function newFoundationsFunctionLibraryNodeCloning() {
name: node.payload.referenceParent.name,
id: node.payload.referenceParent.id
}
// If the path has not been saved save it now
if (node.payload.referenceParentCombinedNodePath === undefined) {
let attachNodePath = UI.projects.foundations.utilities.hierarchy.getNodeNameTypePath(node.payload.referenceParent)
// Save path to reference parent for auto restore
savedPayload.referenceParentCombinedNodePath = attachNodePath
} else {
// Save path to reference parent for auto restore
savedPayload.referenceParentCombinedNodePath = node.payload.referenceParentCombinedNodePath
}
} else {
/* The referenceParent property can be inherited from the previous saved payload. */
if (node.savedPayload !== undefined) {
savedPayload.referenceParent = node.savedPayload.referenceParent
// Save path to reference parent for auto restore
savedPayload.referenceParentCombinedNodePath = node.savedPayload.referenceParentCombinedNodePath
}
}
@@ -263,7 +263,7 @@ function newFoundationsFunctionLibraryProtocolNode() {
if (node.payload.referenceParentCombinedNodePath === undefined) {
let attachNodePath = UI.projects.foundations.utilities.hierarchy.getNodeNameTypePath(node.payload.referenceParent)
// Save path to reference parent for auto restore
savedPayload.referenceParentCombinedNodePath = { path: attachNodePath }
savedPayload.referenceParentCombinedNodePath = attachNodePath
} else {
// Save path to reference parent for auto restore
savedPayload.referenceParentCombinedNodePath = node.payload.referenceParentCombinedNodePath
@@ -37,7 +37,7 @@ function newFoundationsFunctionLibrarySuperScriptsFunctions() {
}
if (targetExchange === undefined) {
targetExchange = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(target, exchangeNodeType)
targetExchange.payload.referenceParent = exchange
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(targetExchange, exchange)
}
let nodesArray = targetExchange[arrayPropertyName]
nodesArray.push(templateClone)
@@ -611,7 +611,7 @@ function newFoundationsFunctionLibraryTaskFunctions() {
if (projectDefinition !== undefined) {
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, projectDefinition, true) === true) {
let projectTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, newNodeType, undefined, project)
projectTasks.payload.referenceParent = projectDefinition
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(projectTasks, projectDefinition)
}
}
}
@@ -642,7 +642,7 @@ function newFoundationsFunctionLibraryTaskFunctions() {
let cryptoExchange = cryptoExchanges.exchanges[k]
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, cryptoExchange, true) === true) {
let exchangeTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, newNodeType)
exchangeTasks.payload.referenceParent = cryptoExchange
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(exchangeTasks, cryptoExchange)
}
}
}
@@ -674,7 +674,7 @@ function newFoundationsFunctionLibraryTaskFunctions() {
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, market, true) === true) {
let marketDataTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, newNodeType)
marketDataTasks.payload.referenceParent = market
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(marketDataTasks, market)
}
}
}
@@ -699,7 +699,7 @@ function newFoundationsFunctionLibraryTaskFunctions() {
if (UI.projects.foundations.utilities.children.isMissingChildrenById(node, mine, true) === true) {
let dataMineTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, newNodeType)
dataMineTasks.payload.referenceParent = mine
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(dataMineTasks, mine)
}
}
}
@@ -846,12 +846,12 @@ function newFoundationsFunctionLibraryTaskFunctions() {
switch (bot.type) {
case 'Sensor Bot': {
processInstance = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(botInstance, 'Sensor Process Instance')
processInstance.payload.referenceParent = process
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(processInstance, process)
break
}
case 'API Data Fetcher Bot': {
processInstance = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(botInstance, 'API Data Fetcher Process Instance')
processInstance.payload.referenceParent = process
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(processInstance, process)
/*
We will locate and reference the API MAP that has the same codeName than the data mine.
@@ -863,7 +863,7 @@ function newFoundationsFunctionLibraryTaskFunctions() {
let mineCodeName = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(mine.payload, 'codeName')
if (apiMapCodeName === mineCodeName) {
processInstance.apiMapReference.payload.referenceParent = apiMap
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(processInstance.apiMapReference, apiMap)
break
}
}
@@ -871,12 +871,12 @@ function newFoundationsFunctionLibraryTaskFunctions() {
}
case 'Indicator Bot': {
processInstance = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(botInstance, 'Indicator Process Instance')
processInstance.payload.referenceParent = process
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(processInstance, process)
break
}
case 'Trading Bot': {
processInstance = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(botInstance, 'Trading Process Instance')
processInstance.payload.referenceParent = process
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(processInstance, process)
if (node.payload.parentNode === undefined) { return }
if (node.payload.parentNode.payload === undefined) { return }
@@ -911,15 +911,15 @@ function newFoundationsFunctionLibraryTaskFunctions() {
let rootNode = rootNodes[m]
if (rootNode.type === 'Trading Engine' && rootNode.isPlugin === true) {
let tradingEngine = rootNode
session.tradingEngineReference.payload.referenceParent = tradingEngine
session.tradingSystemReference.payload.referenceParent = systemNode
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(session.tradingEngineReference, tradingEngine)
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(session.tradingSystemReference, systemNode)
}
}
}
}
case 'Learning Bot': {
processInstance = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(botInstance, 'Learning Process Instance')
processInstance.payload.referenceParent = process
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(processInstance, process)
let session
addSession(sessionType)
@@ -936,8 +936,8 @@ function newFoundationsFunctionLibraryTaskFunctions() {
let rootNode = rootNodes[m]
if (rootNode.type === 'Learning Engine' && rootNode.isPlugin === true) {
let learningEngine = rootNode
session.learningEngineReference.payload.referenceParent = learningEngine
session.learningSystemReference.payload.referenceParent = systemNode
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(session.learningEngineReference, learningEngine)
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(session.learningSystemReference, systemNode)
}
}
}
@@ -315,7 +315,6 @@ function newFoundationsFunctionLibraryUiObjectsFromNodes() {
// if Reestablishment failed now reestablish reference based on saved path
if (node.payload.referenceParent === undefined) {
console.log('this node failed to connect by id ' + node.type + ' ' + node.name, node )
// Gather saved path
let rawPath = node.savedPayload.referenceParentCombinedNodePath
if (rawPath !== undefined) {
@@ -385,9 +384,9 @@ function newFoundationsFunctionLibraryUiObjectsFromNodes() {
}
}
}
if (node.payload.referenceParent === undefined) {
console.log('[WARN]' + node.type + ' ' + node.name + ' reference parent lost during re-binding phase.')
}
if (node.payload.referenceParent === undefined) {
console.log('[WARN]' + node.type + ' ' + node.name + ' reference parent lost during re-binding phase.')
}
}
}
+2 -2
View File
@@ -43,7 +43,7 @@ function newFoundationsUtilitiesFolders() {
to its origin object counter part.
*/
let clonedObject = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(destinationNode, clonedObjectType)
clonedObject.payload.referenceParent = originObject
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(clonedObject, originObject)
} else {
/*
In this second Use Case, we are going to connect an inner object that is
@@ -54,7 +54,7 @@ function newFoundationsUtilitiesFolders() {
for (let n = 0; n < originObjectArray.length; n++) {
let originObjectArrayItem = originObjectArray[n]
let clonedObject = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(destinationNode, clonedObjectType)
clonedObject.payload.referenceParent = originObjectArrayItem
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(clonedObject, originObjectArrayItem)
}
}
}
@@ -220,7 +220,7 @@ function newFoundationsUtilitiesNodeChildren() {
let child
if (isMissingChildrenById(startingNode, referencedNode, true) === true) {
child = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(startingNode, childType)
child.payload.referenceParent = referencedNode
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(child, referencedNode)
} else {
child = findChildReferencingThisNode(startingNode, referencedNode)
}
@@ -239,7 +239,7 @@ function newFoundationsUtilitiesNodeChildren() {
UI.projects.foundations.functionLibraries.nodeDeleter.deleteUIObject(child, rootNodes)
}
child = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(startingNode, childType)
child.payload.referenceParent = referencedNode
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(child, referencedNode)
return child
}
@@ -532,7 +532,7 @@ function newGovernanceFunctionLibraryClaimsProgram() {
if (originNodeChild === undefined) {
originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
}
originNodeChild.payload.referenceParent = destinationNodeChild
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(originNodeChild, destinationNodeChild)
scanNodeBranch(originNodeChild, destinationNodeChild)
}
break
@@ -549,7 +549,7 @@ function newGovernanceFunctionLibraryClaimsProgram() {
if (originNodeChild === undefined) {
originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
}
originNodeChild.payload.referenceParent = destinationNodeChild
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(originNodeChild, destinationNodeChild)
scanNodeBranch(originNodeChild, destinationNodeChild)
}
}
@@ -538,7 +538,7 @@ function newGovernanceFunctionLibraryVotingProgram() {
if (originNodeChild === undefined) {
originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
}
originNodeChild.payload.referenceParent = destinationNodeChild
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(originNodeChild, destinationNodeChild)
scanNodeBranch(originNodeChild, destinationNodeChild)
}
break
@@ -555,7 +555,7 @@ function newGovernanceFunctionLibraryVotingProgram() {
if (originNodeChild === undefined) {
originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
}
originNodeChild.payload.referenceParent = destinationNodeChild
UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(originNodeChild, destinationNodeChild)
scanNodeBranch(originNodeChild, destinationNodeChild)
}
}