From f13700287e9c1181aae3800522ba17d5bbb80bcd Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sun, 27 Oct 2019 13:15:27 +0100 Subject: [PATCH] Designer Space Refactoring --- Canvas.js | 24 +-- Dashboard.js | 2 +- .../StrategizerGateway.js | 188 +++++++++--------- .../FunctionLibraries/AttachDetach.js | 0 .../FunctionLibraries/NodeChildren.js | 0 .../FunctionLibraries/NodeDeleter.js | 0 .../Workspace/FunctionLibraries/OnFocus.js | 0 .../FunctionLibraries/ProtocolNode.js | 0 .../FunctionLibraries/SessionFunctions.js | 0 .../FunctionLibraries/ShortcutKeys.js | 0 .../FunctionLibraries/TaskFunctions.js | 0 .../FunctionLibraries/UiObjectsFromNodes.js | 2 +- .../Workspace/Workspace.js | 4 +- FloatingSpace/CircularMenuItem.js | 12 +- FloatingSpace/FloatingObject.js | 2 +- FloatingSpace/UiObject.js | 8 +- Panels/ProductsPanel.js | 2 +- Spaces/CockpitSpace.js | 10 +- Spaces/{StrategySpace.js => DesignerSpace.js} | 2 +- 19 files changed, 128 insertions(+), 128 deletions(-) rename {StrategySpace => DesignerSpace}/StrategizerGateway.js (96%) rename {StrategySpace => DesignerSpace}/Workspace/FunctionLibraries/AttachDetach.js (100%) rename {StrategySpace => DesignerSpace}/Workspace/FunctionLibraries/NodeChildren.js (100%) rename {StrategySpace => DesignerSpace}/Workspace/FunctionLibraries/NodeDeleter.js (100%) rename {StrategySpace => DesignerSpace}/Workspace/FunctionLibraries/OnFocus.js (100%) rename {StrategySpace => DesignerSpace}/Workspace/FunctionLibraries/ProtocolNode.js (100%) rename {StrategySpace => DesignerSpace}/Workspace/FunctionLibraries/SessionFunctions.js (100%) rename {StrategySpace => DesignerSpace}/Workspace/FunctionLibraries/ShortcutKeys.js (100%) rename {StrategySpace => DesignerSpace}/Workspace/FunctionLibraries/TaskFunctions.js (100%) rename {StrategySpace => DesignerSpace}/Workspace/FunctionLibraries/UiObjectsFromNodes.js (99%) rename {StrategySpace => DesignerSpace}/Workspace/Workspace.js (99%) rename Spaces/{StrategySpace.js => DesignerSpace.js} (99%) diff --git a/Canvas.js b/Canvas.js index 843b27b8d..3de02826b 100644 --- a/Canvas.js +++ b/Canvas.js @@ -37,7 +37,7 @@ function newCanvas () { panelsSpace: undefined, cockpitSpace: undefined, bottomSpace: undefined, - strategySpace: undefined, + designerSpace: undefined, animation: undefined, initialize: initialize, finalize: finalize @@ -90,8 +90,8 @@ function newCanvas () { thisObject.topSpace = newTopSpace() await thisObject.topSpace.initialize() - thisObject.strategySpace = newStrategySpace() - await thisObject.strategySpace.initialize() + thisObject.designerSpace = newDesignerSpace() + await thisObject.designerSpace.initialize() thisObject.cockpitSpace = newCockpitSpace() thisObject.cockpitSpace.initialize() @@ -125,7 +125,7 @@ function newCanvas () { animation.addCallBackFunction('Floating Space Physics', thisObject.floatingSpace.physics) animation.addCallBackFunction('Chart Space Physics', thisObject.chartSpace.physics) animation.addCallBackFunction('CockpitSpace Physics', thisObject.cockpitSpace.physics) - animation.addCallBackFunction('Strategy Space Physics', thisObject.strategySpace.physics) + animation.addCallBackFunction('Strategy Space Physics', thisObject.designerSpace.physics) animation.addCallBackFunction('Panels Space Physics', thisObject.panelsSpace.physics) /* Spcaces Drawing */ @@ -136,7 +136,7 @@ function newCanvas () { animation.addCallBackFunction('ViewPort Animate', viewPort.animate) animation.addCallBackFunction('CockpitSpace Draw', thisObject.cockpitSpace.draw) animation.addCallBackFunction('Top Space Draw', thisObject.topSpace.draw) - animation.addCallBackFunction('Strategy Space Draw', thisObject.strategySpace.draw) + animation.addCallBackFunction('Strategy Space Draw', thisObject.designerSpace.draw) animation.addCallBackFunction('Splash Screen Draw', splashScreen.draw) animation.start() } catch (err) { @@ -190,7 +190,7 @@ function newCanvas () { } function onKeyDown (event) { - let nodeOnFocus = canvas.strategySpace.workspace.getNodeThatIsOnFocus() + let nodeOnFocus = canvas.designerSpace.workspace.getNodeThatIsOnFocus() if (nodeOnFocus !== undefined) { if (nodeOnFocus.payload.uiObject.codeEditor !== undefined) { if (nodeOnFocus.payload.uiObject.codeEditor.visible === true) { @@ -266,7 +266,7 @@ function newCanvas () { /* From here we prevent the default behaviour */ event.preventDefault() - let nodeUsingThisKey = canvas.strategySpace.workspace.getNodeByShortcutKey(event.key) + let nodeUsingThisKey = canvas.designerSpace.workspace.getNodeByShortcutKey(event.key) if (nodeOnFocus === undefined && nodeUsingThisKey !== undefined) { /* Then we displace the whole workspace to center it at the node using this key */ @@ -349,7 +349,7 @@ function newCanvas () { x: event.x, y: event.y } - thisObject.strategySpace.workspace.spawn(reader.result, mousePosition) + thisObject.designerSpace.workspace.spawn(reader.result, mousePosition) } } } catch (err) { @@ -372,7 +372,7 @@ function newCanvas () { /* We check if the mouse is over an element of the Strategy Space / */ - container = thisObject.strategySpace.getContainer(point) + container = thisObject.designerSpace.getContainer(point) if (container !== undefined && container.isDraggeable === true) { containerBeingDragged = container @@ -478,7 +478,7 @@ function newCanvas () { /* We check if the mouse is over an element of the Strategy Space / */ - container = thisObject.strategySpace.getContainer(point) + container = thisObject.designerSpace.getContainer(point) if (container !== undefined && container.isClickeable === true) { container.eventHandler.raiseEvent('onMouseClick', point) @@ -607,8 +607,8 @@ function newCanvas () { /* We check if the mouse is over an element of the Strategy Space / */ - if (thisObject.strategySpace !== undefined) { - container = thisObject.strategySpace.getContainer(point) + if (thisObject.designerSpace !== undefined) { + container = thisObject.designerSpace.getContainer(point) if (container !== undefined && container.detectMouseOver === true) { containerFound() diff --git a/Dashboard.js b/Dashboard.js index f6d435b22..5e0d85852 100644 --- a/Dashboard.js +++ b/Dashboard.js @@ -106,7 +106,7 @@ function newDashboard () { function setBrowserEvents () { window.onbeforeunload = onBrowserClosed function onBrowserClosed () { - canvas.strategySpace.workspace.stopAllRunningTasks() + canvas.designerSpace.workspace.stopAllRunningTasks() } } } diff --git a/StrategySpace/StrategizerGateway.js b/DesignerSpace/StrategizerGateway.js similarity index 96% rename from StrategySpace/StrategizerGateway.js rename to DesignerSpace/StrategizerGateway.js index bcf8644bb..2b626447f 100644 --- a/StrategySpace/StrategizerGateway.js +++ b/DesignerSpace/StrategizerGateway.js @@ -1,95 +1,95 @@ - -function newStrategizerGateway () { - const MODULE_NAME = 'Strategizer Gateway' - const logger = newWebDebugLog() - logger.fileName = MODULE_NAME - - let thisObject = { - idAtStrategizer: undefined, - strategizerData: undefined, - container: undefined, - loadFromStrategyzer: loadFromStrategyzer - } - - let colletionItems = [] - - thisObject.container = newContainer() - thisObject.container.name = MODULE_NAME - thisObject.container.initialize() - - thisObject.container.frame.width = 0 - thisObject.container.frame.height = 0 - - thisObject.container.frame.position.x = 0 - thisObject.container.frame.position.y = 0 - - thisObject.container.isDraggeable = false - thisObject.container.isClickeable = false - - let graphQLServer - - return thisObject - - async function loadFromStrategyzer () { - try { - const accessToken = window.localStorage.getItem(LOGGED_IN_ACCESS_TOKEN_LOCAL_STORAGE_KEY) - if (accessToken === null) { - logger.write('[ERROR] loadFromStrategyzer -> Can load from strategizer because the accessToken is missing.') - return - } - - let user = window.localStorage.getItem(LOGGED_IN_USER_LOCAL_STORAGE_KEY) - if (user === null) { - logger.write('[ERROR] saveToStrategyzer -> Can not load from strategizer because user is not logged in. ') - return - } - - user = JSON.parse(user) - - if (window.canvasApp.executingAt === 'Local') { - window.localStorage.setItem(CANVAS_APP_NAME + '.' + MODULE_NAME + '.' + user.alias, 'Local File') - thisObject.strategizerData = JSON.parse('{"type":"Definition"}') - thisObject.idAtStrategizer = 'Local File' - return true - } else { - let fbSlug = 'simulator-bot-' + user.alias.replace('.', '') - - graphQLServer = await axios({ - url: window.canvasApp.graphQL.masterAppApiUrl, - method: 'post', - data: { - query: - ` - query($fbSlug: String!){ - strategizer_TradingSystemByFb(fbSlug: $fbSlug){ - id - fbSlug - data - } - } - `, - - variables: { - fbSlug: fbSlug - } - }, - headers: { - authorization: 'Bearer ' + accessToken - } - }) - - if (graphQLServer.data.errors) { - logger.write('[ERROR] loadFromStrategyzer -> GraphQL Error: ' + JSON.stringify(graphQLServer.data.errors)) - return false - } else { - thisObject.strategizerData = JSON.parse(JSON.stringify(graphQLServer.data.data.strategizer_TradingSystemByFb.data)) - thisObject.idAtStrategizer = graphQLServer.data.data.strategizer_TradingSystemByFb.id - window.localStorage.setItem(CANVAS_APP_NAME + '.' + MODULE_NAME + '.' + user.alias, thisObject.idAtStrategizer) - return true - } - } - } catch (err) { - logger.write('[ERROR] loadFromStrategyzer -> err = ' + err.stack) - } + +function newStrategizerGateway () { + const MODULE_NAME = 'Strategizer Gateway' + const logger = newWebDebugLog() + logger.fileName = MODULE_NAME + + let thisObject = { + idAtStrategizer: undefined, + strategizerData: undefined, + container: undefined, + loadFromStrategyzer: loadFromStrategyzer } -} + + let colletionItems = [] + + thisObject.container = newContainer() + thisObject.container.name = MODULE_NAME + thisObject.container.initialize() + + thisObject.container.frame.width = 0 + thisObject.container.frame.height = 0 + + thisObject.container.frame.position.x = 0 + thisObject.container.frame.position.y = 0 + + thisObject.container.isDraggeable = false + thisObject.container.isClickeable = false + + let graphQLServer + + return thisObject + + async function loadFromStrategyzer () { + try { + const accessToken = window.localStorage.getItem(LOGGED_IN_ACCESS_TOKEN_LOCAL_STORAGE_KEY) + if (accessToken === null) { + logger.write('[ERROR] loadFromStrategyzer -> Can load from strategizer because the accessToken is missing.') + return + } + + let user = window.localStorage.getItem(LOGGED_IN_USER_LOCAL_STORAGE_KEY) + if (user === null) { + logger.write('[ERROR] saveToStrategyzer -> Can not load from strategizer because user is not logged in. ') + return + } + + user = JSON.parse(user) + + if (window.canvasApp.executingAt === 'Local') { + window.localStorage.setItem(CANVAS_APP_NAME + '.' + MODULE_NAME + '.' + user.alias, 'Local File') + thisObject.strategizerData = JSON.parse('{"type":"Definition"}') + thisObject.idAtStrategizer = 'Local File' + return true + } else { + let fbSlug = 'simulator-bot-' + user.alias.replace('.', '') + + graphQLServer = await axios({ + url: window.canvasApp.graphQL.masterAppApiUrl, + method: 'post', + data: { + query: + ` + query($fbSlug: String!){ + strategizer_TradingSystemByFb(fbSlug: $fbSlug){ + id + fbSlug + data + } + } + `, + + variables: { + fbSlug: fbSlug + } + }, + headers: { + authorization: 'Bearer ' + accessToken + } + }) + + if (graphQLServer.data.errors) { + logger.write('[ERROR] loadFromStrategyzer -> GraphQL Error: ' + JSON.stringify(graphQLServer.data.errors)) + return false + } else { + thisObject.strategizerData = JSON.parse(JSON.stringify(graphQLServer.data.data.strategizer_TradingSystemByFb.data)) + thisObject.idAtStrategizer = graphQLServer.data.data.strategizer_TradingSystemByFb.id + window.localStorage.setItem(CANVAS_APP_NAME + '.' + MODULE_NAME + '.' + user.alias, thisObject.idAtStrategizer) + return true + } + } + } catch (err) { + logger.write('[ERROR] loadFromStrategyzer -> err = ' + err.stack) + } + } +} diff --git a/StrategySpace/Workspace/FunctionLibraries/AttachDetach.js b/DesignerSpace/Workspace/FunctionLibraries/AttachDetach.js similarity index 100% rename from StrategySpace/Workspace/FunctionLibraries/AttachDetach.js rename to DesignerSpace/Workspace/FunctionLibraries/AttachDetach.js diff --git a/StrategySpace/Workspace/FunctionLibraries/NodeChildren.js b/DesignerSpace/Workspace/FunctionLibraries/NodeChildren.js similarity index 100% rename from StrategySpace/Workspace/FunctionLibraries/NodeChildren.js rename to DesignerSpace/Workspace/FunctionLibraries/NodeChildren.js diff --git a/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js b/DesignerSpace/Workspace/FunctionLibraries/NodeDeleter.js similarity index 100% rename from StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js rename to DesignerSpace/Workspace/FunctionLibraries/NodeDeleter.js diff --git a/StrategySpace/Workspace/FunctionLibraries/OnFocus.js b/DesignerSpace/Workspace/FunctionLibraries/OnFocus.js similarity index 100% rename from StrategySpace/Workspace/FunctionLibraries/OnFocus.js rename to DesignerSpace/Workspace/FunctionLibraries/OnFocus.js diff --git a/StrategySpace/Workspace/FunctionLibraries/ProtocolNode.js b/DesignerSpace/Workspace/FunctionLibraries/ProtocolNode.js similarity index 100% rename from StrategySpace/Workspace/FunctionLibraries/ProtocolNode.js rename to DesignerSpace/Workspace/FunctionLibraries/ProtocolNode.js diff --git a/StrategySpace/Workspace/FunctionLibraries/SessionFunctions.js b/DesignerSpace/Workspace/FunctionLibraries/SessionFunctions.js similarity index 100% rename from StrategySpace/Workspace/FunctionLibraries/SessionFunctions.js rename to DesignerSpace/Workspace/FunctionLibraries/SessionFunctions.js diff --git a/StrategySpace/Workspace/FunctionLibraries/ShortcutKeys.js b/DesignerSpace/Workspace/FunctionLibraries/ShortcutKeys.js similarity index 100% rename from StrategySpace/Workspace/FunctionLibraries/ShortcutKeys.js rename to DesignerSpace/Workspace/FunctionLibraries/ShortcutKeys.js diff --git a/StrategySpace/Workspace/FunctionLibraries/TaskFunctions.js b/DesignerSpace/Workspace/FunctionLibraries/TaskFunctions.js similarity index 100% rename from StrategySpace/Workspace/FunctionLibraries/TaskFunctions.js rename to DesignerSpace/Workspace/FunctionLibraries/TaskFunctions.js diff --git a/StrategySpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js b/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js similarity index 99% rename from StrategySpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js rename to DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js index c86e8507f..4604a047c 100644 --- a/StrategySpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js +++ b/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js @@ -1291,7 +1291,7 @@ function newUiObjectsFromNodes () { payload.node = node payload.parentNode = parentNode payload.chainParent = chainParent - payload.onMenuItemClick = canvas.strategySpace.workspace.onMenuItemClick + payload.onMenuItemClick = canvas.designerSpace.workspace.onMenuItemClick if (node.id === undefined) { node.id = newUniqueId() diff --git a/StrategySpace/Workspace/Workspace.js b/DesignerSpace/Workspace/Workspace.js similarity index 99% rename from StrategySpace/Workspace/Workspace.js rename to DesignerSpace/Workspace/Workspace.js index ca1efbfc9..af95304c9 100644 --- a/StrategySpace/Workspace/Workspace.js +++ b/DesignerSpace/Workspace/Workspace.js @@ -96,9 +96,9 @@ function newWorkspace () { } async function initializeLoadingFromStrategizer () { - let result = await canvas.strategySpace.strategizerGateway.loadFromStrategyzer() + let result = await canvas.designerSpace.strategizerGateway.loadFromStrategyzer() if (result === true) { - thisObject.definition = canvas.strategySpace.strategizerGateway.strategizerData + thisObject.definition = canvas.designerSpace.strategizerGateway.strategizerData thisObject.workspaceNode.rootNodes.push(thisObject.definition) functionLibraryUiObjectsFromNodes.createPartFromNode(thisObject.definition, undefined, undefined) diff --git a/FloatingSpace/CircularMenuItem.js b/FloatingSpace/CircularMenuItem.js index f810012bc..658fa6e92 100644 --- a/FloatingSpace/CircularMenuItem.js +++ b/FloatingSpace/CircularMenuItem.js @@ -167,15 +167,15 @@ function newCircularMenuItem () { temporaryStatus === STATUS_SECONDARY_WORK_FAILED ) && thisObject.secondaryAction !== undefined ) { - thisObject.iconOn = canvas.strategySpace.iconCollection.get(thisObject.secondaryIcon) - thisObject.iconOff = canvas.strategySpace.iconCollection.get(thisObject.secondaryIcon) + thisObject.iconOn = canvas.designerSpace.iconCollection.get(thisObject.secondaryIcon) + thisObject.iconOff = canvas.designerSpace.iconCollection.get(thisObject.secondaryIcon) } else { if (thisObject.relatedUiObject !== undefined) { - thisObject.iconOn = canvas.strategySpace.iconByPartType.get(thisObject.relatedUiObject) - thisObject.iconOff = canvas.strategySpace.iconByPartType.get(thisObject.relatedUiObject) + thisObject.iconOn = canvas.designerSpace.iconByPartType.get(thisObject.relatedUiObject) + thisObject.iconOff = canvas.designerSpace.iconByPartType.get(thisObject.relatedUiObject) } else { - thisObject.iconOn = canvas.strategySpace.iconCollection.get(thisObject.iconPathOn) - thisObject.iconOff = canvas.strategySpace.iconCollection.get(thisObject.iconPathOff) + thisObject.iconOn = canvas.designerSpace.iconCollection.get(thisObject.iconPathOn) + thisObject.iconOff = canvas.designerSpace.iconCollection.get(thisObject.iconPathOff) } } diff --git a/FloatingSpace/FloatingObject.js b/FloatingSpace/FloatingObject.js index ac7d40296..efc052f92 100644 --- a/FloatingSpace/FloatingObject.js +++ b/FloatingSpace/FloatingObject.js @@ -208,7 +208,7 @@ function newFloatingObject () { let parent = thisObject.payload.chainParent if (parent !== undefined) { let distanceToChainParent = Math.sqrt(Math.pow(parent.payload.position.x - thisObject.container.frame.position.x, 2) + Math.pow(parent.payload.position.y - thisObject.container.frame.position.y, 2)) // ... we calculate the distance ... - let parentChildren = canvas.strategySpace.workspace.nodeChildren.childrenCount(parent, thisObject.payload.node) + let parentChildren = canvas.designerSpace.workspace.nodeChildren.childrenCount(parent, thisObject.payload.node) let axisCount = parentChildren.childrenCount let axisIndex = parentChildren.childIndex let baseAngle = 0 diff --git a/FloatingSpace/UiObject.js b/FloatingSpace/UiObject.js index 284bcf250..62bfc16db 100644 --- a/FloatingSpace/UiObject.js +++ b/FloatingSpace/UiObject.js @@ -549,7 +549,7 @@ function newUiObject () { if (previousDistance !== undefined) { if (ratio > THRESHOLD) { - canvas.strategySpace.workspace.detachNode(thisObject.payload.node) + canvas.designerSpace.workspace.detachNode(thisObject.payload.node) } } } @@ -658,8 +658,8 @@ function newUiObject () { } function iconPhysics () { - icon = canvas.strategySpace.iconByPartType.get(thisObject.payload.node.type) - executingIcon = canvas.strategySpace.iconCollection.get('attractive') + icon = canvas.designerSpace.iconByPartType.get(thisObject.payload.node.type) + executingIcon = canvas.designerSpace.iconCollection.get('attractive') } function onFocus () { @@ -692,7 +692,7 @@ function newUiObject () { function onDragFinished (event) { if (isAttaching === true) { - canvas.strategySpace.workspace.attachNode(thisObject.payload.node, attachToNode) + canvas.designerSpace.workspace.attachNode(thisObject.payload.node, attachToNode) attachToNode = undefined isAttaching = false } diff --git a/Panels/ProductsPanel.js b/Panels/ProductsPanel.js index 90612acd2..a6cce9c60 100644 --- a/Panels/ProductsPanel.js +++ b/Panels/ProductsPanel.js @@ -278,7 +278,7 @@ function newProductsPanel () { } /* Then we get an Array of all instances of this bot placed at Definitions on the Workspace. */ - let tradingBotInstances = canvas.strategySpace.workspace.getAllTradingBotInstances() + let tradingBotInstances = canvas.designerSpace.workspace.getAllTradingBotInstances() /* Here we will go through all the instances of trading engines and see their layers, to see if we can find a matching layer. */ diff --git a/Spaces/CockpitSpace.js b/Spaces/CockpitSpace.js index dbf34cfef..453d5e779 100644 --- a/Spaces/CockpitSpace.js +++ b/Spaces/CockpitSpace.js @@ -45,7 +45,7 @@ thisObject.container.frame.position.x = 0 let INITIAL_POSITION - if (canvas.strategySpace.workspace.enabled === true) { + if (canvas.designerSpace.workspace.enabled === true) { let localStorage = window.localStorage.getItem(MODULE_NAME) if (localStorage !== null) { storage = JSON.parse(localStorage) @@ -100,7 +100,7 @@ thisObject.status = 'MIDDLE' - if (canvas.strategySpace.workspace.enabled === true) { + if (canvas.designerSpace.workspace.enabled === true) { thisObject.container.isDraggeable = true } else { thisObject.container.isDraggeable = false @@ -109,10 +109,10 @@ if (thisObject.container.frame.position.y > browserCanvas.height * 99.5 / 100 - COCKPIT_SPACE_HEIGHT) { thisObject.container.frame.position.y = browserCanvas.height - COCKPIT_SPACE_HEIGHT thisObject.status = 'BOTTOM' - canvas.strategySpace.makeInvisible() + canvas.designerSpace.makeInvisible() canvas.floatingSpace.makeInvisible() } else { - canvas.strategySpace.makeVisible() + canvas.designerSpace.makeVisible() canvas.floatingSpace.makeVisible() } @@ -184,7 +184,7 @@ browserCanvasContext.closePath() browserCanvasContext.fill() - if (canvas.strategySpace.workspace.enabled === true) { + if (canvas.designerSpace.workspace.enabled === true) { arrow() } } diff --git a/Spaces/StrategySpace.js b/Spaces/DesignerSpace.js similarity index 99% rename from Spaces/StrategySpace.js rename to Spaces/DesignerSpace.js index 791c74aeb..8200d897d 100644 --- a/Spaces/StrategySpace.js +++ b/Spaces/DesignerSpace.js @@ -1,5 +1,5 @@ -function newStrategySpace () { +function newDesignerSpace () { const MODULE_NAME = 'Strategy Space' let thisObject = { sidePanel: undefined,