Reorg of Workspace Node Variables

This commit is contained in:
Luis Fernando Molina committed 2019-06-29 14:07:25 +02:00
1 parent 3bcba21223
commit 9fed546b1c
4 files changed
+88 -79

No files matched your search

+15 -6
View File
@@ -34,7 +34,7 @@ function newFloatingObject () {
initializeRadius: initializeRadius,
initializeImageSize: initializeImageSize,
initializeFontSize: initializeFontSize,
radomizeCurrentPosition: radomizeCurrentPosition,
initializeCurrentPosition: initializeCurrentPosition,
radomizeCurrentSpeed: radomizeCurrentSpeed,
drawBackground: drawBackground,
drawMiddleground: drawMiddleground,
@@ -89,7 +89,7 @@ function newFloatingObject () {
/* Assign a position and speed */
thisObject.radomizeCurrentPosition(thisObject.payload.targetPosition)
thisObject.initializeCurrentPosition(thisObject.payload.targetPosition)
thisObject.radomizeCurrentSpeed()
}
@@ -297,10 +297,19 @@ function newFloatingObject () {
thisObject.currentFontSize = size / 3
}
function radomizeCurrentPosition (arroundPoint) {
let position = {
x: Math.floor((Math.random() * (200) - 100)) + arroundPoint.x,
y: Math.floor((Math.random() * (200) - 100)) + arroundPoint.y
function initializeCurrentPosition (arroundPoint) {
let position
if (thisObject.payload.position === undefined) {
position = {
x: Math.floor((Math.random() * (200) - 100)) + arroundPoint.x,
y: Math.floor((Math.random() * (200) - 100)) + arroundPoint.y
}
} else {
position = {
x: thisObject.payload.position.x,
y: thisObject.payload.position.y
}
}
setPosition(position)
@@ -578,6 +578,12 @@ function newPartsFromNodes () {
x: spawnPosition.x,
y: spawnPosition.y
}
if (partType === 'Workspace' || partType === 'Trading System') {
payload.position = {
x: spawnPosition.x,
y: spawnPosition.y
}
}
} else {
payload.targetPosition = {
x: chainParent.payload.position.x,
@@ -1,10 +1,10 @@
function newWorkspaceNode () {
function newStringifyNode () {
thisObject = {
getWorkspaceNode: getWorkspaceNode
prepareForStringify: prepareForStringify
}
return thisObject
function getWorkspaceNode (node) {
function prepareForStringify (node) {
if (node === undefined) { return }
switch (node.type) {
case 'Code':
@@ -26,7 +26,7 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
code: getWorkspaceNode(node.code),
code: prepareForStringify(node.code),
savedPayload: getSavedPayload(node)
}
return condition
@@ -42,7 +42,7 @@ function newWorkspaceNode () {
}
for (let m = 0; m < node.conditions.length; m++) {
let condition = getWorkspaceNode(node.conditions[m])
let condition = prepareForStringify(node.conditions[m])
situation.conditions.push(condition)
}
return situation
@@ -70,7 +70,7 @@ function newWorkspaceNode () {
savedPayload: getSavedPayload(node)
}
for (let m = 0; m < node.situations.length; m++) {
let situation = getWorkspaceNode(node.situations[m])
let situation = prepareForStringify(node.situations[m])
event.situations.push(situation)
}
return event
@@ -81,8 +81,8 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
formula: getWorkspaceNode(node.formula),
nextPhaseEvent: getWorkspaceNode(node.nextPhaseEvent),
formula: prepareForStringify(node.formula),
nextPhaseEvent: prepareForStringify(node.nextPhaseEvent),
savedPayload: getSavedPayload(node)
}
return phase
@@ -99,7 +99,7 @@ function newWorkspaceNode () {
}
for (let m = 0; m < node.phases.length; m++) {
let phase = getWorkspaceNode(node.phases[m])
let phase = prepareForStringify(node.phases[m])
stop.phases.push(phase)
}
return stop
@@ -116,7 +116,7 @@ function newWorkspaceNode () {
}
for (let m = 0; m < node.phases.length; m++) {
let phase = getWorkspaceNode(node.phases[m])
let phase = prepareForStringify(node.phases[m])
takeProfit.phases.push(phase)
}
return takeProfit
@@ -132,7 +132,7 @@ function newWorkspaceNode () {
}
for (let m = 0; m < node.situations.length; m++) {
let situation = getWorkspaceNode(node.situations[m])
let situation = prepareForStringify(node.situations[m])
event.situations.push(situation)
}
return event
@@ -148,7 +148,7 @@ function newWorkspaceNode () {
}
for (let m = 0; m < node.situations.length; m++) {
let situation = getWorkspaceNode(node.situations[m])
let situation = prepareForStringify(node.situations[m])
event.situations.push(situation)
}
return event
@@ -164,7 +164,7 @@ function newWorkspaceNode () {
}
for (let m = 0; m < node.situations.length; m++) {
let situation = getWorkspaceNode(node.situations[m])
let situation = prepareForStringify(node.situations[m])
event.situations.push(situation)
}
return event
@@ -175,8 +175,8 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
stopLoss: getWorkspaceNode(node.stopLoss),
takeProfit: getWorkspaceNode(node.takeProfit),
stopLoss: prepareForStringify(node.stopLoss),
takeProfit: prepareForStringify(node.takeProfit),
savedPayload: getSavedPayload(node)
}
return object
@@ -187,7 +187,7 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
formula: getWorkspaceNode(node.formula),
formula: prepareForStringify(node.formula),
savedPayload: getSavedPayload(node)
}
return object
@@ -198,10 +198,10 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
triggerOn: getWorkspaceNode(node.triggerOn),
triggerOff: getWorkspaceNode(node.triggerOff),
takePosition: getWorkspaceNode(node.takePosition),
positionSize: getWorkspaceNode(node.positionSize),
triggerOn: prepareForStringify(node.triggerOn),
triggerOff: prepareForStringify(node.triggerOff),
takePosition: prepareForStringify(node.takePosition),
positionSize: prepareForStringify(node.positionSize),
savedPayload: getSavedPayload(node)
}
return stage
@@ -212,7 +212,7 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
initialDefinition: getWorkspaceNode(node.initialDefinition),
initialDefinition: prepareForStringify(node.initialDefinition),
savedPayload: getSavedPayload(node)
}
return stage
@@ -223,8 +223,8 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
stopLoss: getWorkspaceNode(node.stopLoss),
takeProfit: getWorkspaceNode(node.takeProfit),
stopLoss: prepareForStringify(node.stopLoss),
takeProfit: prepareForStringify(node.takeProfit),
savedPayload: getSavedPayload(node)
}
return stage
@@ -245,10 +245,10 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
triggerStage: getWorkspaceNode(node.triggerStage),
openStage: getWorkspaceNode(node.openStage),
manageStage: getWorkspaceNode(node.manageStage),
closeStage: getWorkspaceNode(node.closeStage),
triggerStage: prepareForStringify(node.triggerStage),
openStage: prepareForStringify(node.openStage),
manageStage: prepareForStringify(node.manageStage),
closeStage: prepareForStringify(node.closeStage),
savedPayload: getSavedPayload(node)
}
return strategy
@@ -259,7 +259,7 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
formula: getWorkspaceNode(node.formula),
formula: prepareForStringify(node.formula),
savedPayload: getSavedPayload(node)
}
return object
@@ -270,7 +270,7 @@ function newWorkspaceNode () {
type: node.type,
subType: node.subType,
name: node.name,
baseAsset: getWorkspaceNode(node.baseAsset),
baseAsset: prepareForStringify(node.baseAsset),
savedPayload: getSavedPayload(node)
}
return object
@@ -282,12 +282,12 @@ function newWorkspaceNode () {
subType: node.subType,
name: node.name,
strategies: [],
parameters: getWorkspaceNode(node.parameters),
parameters: prepareForStringify(node.parameters),
savedPayload: getSavedPayload(node)
}
for (let m = 0; m < node.strategies.length; m++) {
let strategy = getWorkspaceNode(node.strategies[m])
let strategy = prepareForStringify(node.strategies[m])
tradingSystem.strategies.push(strategy)
}
return tradingSystem
+36 -42
View File
@@ -33,13 +33,14 @@ function newWorkspace () {
y: canvas.floatingSpace.container.frame.height / 2
}
let rootNodes = []
let workspaceNode = {}
workspaceNode.rootNodes = []
functionLibraryAttachDetach = newAttachDetach()
functionLibraryNodeDeleter = newNodeDeleter()
functionLibraryPartsFromNodes = newPartsFromNodes()
functionLibraryProtocolNode = newProtocolNode()
functionLibraryWorkspaceNodes = newWorkspaceNode()
functionLibraryWorkspaceNodes = newStringifyNode()
let isInitialized = false
return thisObject
@@ -57,27 +58,18 @@ function newWorkspace () {
}
user = JSON.parse(user)
functionLibraryAttachDetach = newAttachDetach()
functionLibraryNodeDeleter = newNodeDeleter()
functionLibraryPartsFromNodes = newPartsFromNodes()
functionLibraryProtocolNode = newProtocolNode()
functionLibraryWorkspaceNodes = newWorkspaceNode()
let savedWorkspace = window.localStorage.getItem(user.alias + '.' + 'workspace')
if (savedWorkspace === null) {
let workspaceNode = {
name: 'My Workspace',
type: 'Workspace'
}
workspaceNode.type = 'Workspace'
workspaceNode.name = 'My Workspace'
functionLibraryPartsFromNodes.createPartFromNode(workspaceNode, undefined, undefined)
spawnPosition.y = spawnPosition.y + 250
initializeLoadingFromStrategizer()
} else {
workspace = JSON.parse(savedWorkspace)
rootNodes = workspace.rootNodes
workspaceNode = JSON.parse(savedWorkspace)
for (let i = 0; i < rootNodes.length; i++) {
let rootNode = rootNodes[i]
for (let i = 0; i < workspaceNode.rootNodes.length; i++) {
let rootNode = workspaceNode.rootNodes[i]
functionLibraryPartsFromNodes.createPartFromNode(rootNode, undefined, undefined)
}
isInitialized = true
@@ -88,7 +80,7 @@ function newWorkspace () {
let result = await canvas.strategySpace.strategizerGateway.loadFromStrategyzer()
if (result === true) {
thisObject.tradingSystem = canvas.strategySpace.strategizerGateway.strategizerData
rootNodes.push(thisObject.tradingSystem)
workspaceNode.rootNodes.push(thisObject.tradingSystem)
functionLibraryPartsFromNodes.createPartFromNode(thisObject.tradingSystem, undefined, undefined)
thisObject.tradingSystem.payload.uiObject.setRunningStatus()
} else {
@@ -97,7 +89,7 @@ function newWorkspace () {
type: 'Trading System',
strategies: []
}
rootNodes.push(thisObject.tradingSystem)
workspaceNode.rootNodes.push(thisObject.tradingSystem)
functionLibraryPartsFromNodes.createPartFromNode(thisObject.tradingSystem, undefined, undefined)
thisObject.tradingSystem.payload.uiObject.setRunningStatus()
}
@@ -113,11 +105,11 @@ function newWorkspace () {
}
function detachNode (node) {
functionLibraryAttachDetach.detachNode(node, rootNodes)
functionLibraryAttachDetach.detachNode(node, workspaceNode.rootNodes)
}
function attachNode (node, attachToNode) {
functionLibraryAttachDetach.attachNode(node, attachToNode, rootNodes)
functionLibraryAttachDetach.attachNode(node, attachToNode, workspaceNode.rootNodes)
}
function physics () {
@@ -135,12 +127,14 @@ function newWorkspace () {
function stringifyWorkspace () {
let stringifyReadyNodes = []
for (let i = 0; i < rootNodes.length; i++) {
let rootNode = rootNodes[i]
let workspaceNode = functionLibraryWorkspaceNodes.getWorkspaceNode(rootNode)
stringifyReadyNodes.push(workspaceNode)
for (let i = 0; i < workspaceNode.rootNodes.length; i++) {
let rootNode = workspaceNode.rootNodes[i]
let workspace = functionLibraryWorkspaceNodes.prepareForStringify(rootNode)
stringifyReadyNodes.push(workspace)
}
let workspace = {
type: 'Workspace',
name: workspaceNode.name,
rootNodes: stringifyReadyNodes
}
return JSON.stringify(workspace)
@@ -153,7 +147,7 @@ function newWorkspace () {
let dirtyNode = JSON.parse(nodeText)
let rootNode = functionLibraryProtocolNode.getProtocolNode(dirtyNode)
rootNodes.push(rootNode)
workspaceNode.rootNodes.push(rootNode)
functionLibraryPartsFromNodes.createPartFromNode(rootNode, undefined, undefined)
}
@@ -263,71 +257,71 @@ function newWorkspace () {
}
break
case 'Delete Trading System': {
functionLibraryNodeDeleter.deleteTradingSystem(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteTradingSystem(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Parameters': {
functionLibraryNodeDeleter.deleteParameters(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteParameters(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Base Asset': {
functionLibraryNodeDeleter.deleteBaseAsset(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteBaseAsset(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Strategy': {
functionLibraryNodeDeleter.deleteStrategy(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteStrategy(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Trigger Stage': {
functionLibraryNodeDeleter.deleteTriggerStage(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteTriggerStage(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Open Stage': {
functionLibraryNodeDeleter.deleteOpenStage(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteOpenStage(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Manage Stage': {
functionLibraryNodeDeleter.deleteManageStage(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteManageStage(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Close Stage': {
functionLibraryNodeDeleter.deleteCloseStage(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteCloseStage(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Position Size': {
functionLibraryNodeDeleter.deletePositionSize(payload.node, rootNodes)
functionLibraryNodeDeleter.deletePositionSize(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Initial Definition': {
functionLibraryNodeDeleter.deleteInitialDefinition(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteInitialDefinition(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Event': {
functionLibraryNodeDeleter.deleteEvent(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteEvent(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Managed Item': {
functionLibraryNodeDeleter.deleteManagedItem(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteManagedItem(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Phase': {
functionLibraryNodeDeleter.deletePhase(payload.node, rootNodes)
functionLibraryNodeDeleter.deletePhase(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Formula': {
functionLibraryNodeDeleter.deleteFormula(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteFormula(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Situation': {
functionLibraryNodeDeleter.deleteSituation(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteSituation(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Condition': {
functionLibraryNodeDeleter.deleteCondition(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteCondition(payload.node, workspaceNode.rootNodes)
break
}
case 'Delete Code': {
functionLibraryNodeDeleter.deleteCode(payload.node, rootNodes)
functionLibraryNodeDeleter.deleteCode(payload.node, workspaceNode.rootNodes)
break
}
default: