From 75155da9c7fb202c08f5ee6757d799d8b31a65c7 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Wed, 29 Apr 2020 19:56:17 +0200 Subject: [PATCH] loadFrom Code v1 working --- FloatingSpace/ConditionEditor.js | 111 ++++++++++++++++++++++++++++--- FloatingSpace/Picker.js | 11 ++- 2 files changed, 111 insertions(+), 11 deletions(-) diff --git a/FloatingSpace/ConditionEditor.js b/FloatingSpace/ConditionEditor.js index 18c570352..677d1f20e 100644 --- a/FloatingSpace/ConditionEditor.js +++ b/FloatingSpace/ConditionEditor.js @@ -65,11 +65,11 @@ function newConditionEditor () { // chart.at01hs.bollingerSubChannel.previous.previous.slope=== "Extreme" let code = '' - code = code + 'chart.at' + operatorA.timeFramePicker.getValue().replace('-', '') - code = code + '.' + operatorA.productPicker.getValue() - code = code + '.' + operatorA.propertyPicker.getValue() + code = code + 'chart.at' + operatorA.timeFramePicker.getSelected().replace('-', '') + code = code + '.' + operatorA.productPicker.getSelected() + code = code + '.' + operatorA.propertyPicker.getSelected() - switch (operationPicker.getValue()) { + switch (operationPicker.getSelected()) { case 'Greater Than': { code = code + ' > ' break @@ -92,12 +92,12 @@ function newConditionEditor () { } } - if (operationPicker.getValue() === 'Equal To') { - code = code + '"' + operatorA.valuePicker.getValue() + '"' + if (operationPicker.getSelected() === 'Equal To') { + code = code + '"' + operatorA.valuePicker.getSelected() + '"' } else { - code = code + 'chart.at' + operatorB.timeFramePicker.getValue().replace('-', '') - code = code + '.' + operatorB.productPicker.getValue() - code = code + '.' + operatorB.propertyPicker.getValue() + code = code + 'chart.at' + operatorB.timeFramePicker.getSelected().replace('-', '') + code = code + '.' + operatorB.productPicker.getSelected() + code = code + '.' + operatorB.propertyPicker.getSelected() } thisObject.payload.node.code = code @@ -112,9 +112,102 @@ function newConditionEditor () { operatorB = {} scanDataMines() initializePickers() + + loadFromCode() EDITOR_ON_FOCUS = true } + function loadFromCode () { + if (thisObject.payload.node.code === undefined || thisObject.payload.node.code === '') { return } + + let code = thisObject.payload.node.code + let codeA + let codeB + + if (code.indexOf(' > ') > 0) { + let codeArray = code.split(' > ') + codeA = codeArray[0] + codeB = codeArray[1] + } + + if (code.indexOf(' < ') > 0) { + let codeArray = code.split(' < ') + codeA = codeArray[0] + codeB = codeArray[1] + } + + if (code.indexOf(' >= ') > 0) { + let codeArray = code.split(' >= ') + codeA = codeArray[0] + codeB = codeArray[1] + } + + if (code.indexOf(' <= ') > 0) { + let codeArray = code.split(' <= ') + codeA = codeArray[0] + codeB = codeArray[1] + } + + if (code.indexOf(' === ') > 0) { + let codeArray = code.split(' === ') + codeA = codeArray[0] + codeB = codeArray[1] + } + + let codeAArray = codeA.split('.') + let codeBArray = codeB.split('.') + + if (code.indexOf(' === ') > 0) { + } else { + updatePickers(operatorA, codeAArray) + updatePickers(operatorB, codeBArray) + + function updatePickers (operator, codeArray) { + let codeTimeFrame = codeArray[1].substring(2, 4) + '-' + codeArray[1].substring(4, 7) + let codeProduct = codeArray[2] + let codeProperty = codeArray[3] + let codeValue = '' + + let dataMines = Object.keys(operator.selector) + for (let i = 0; i < dataMines.length; i++) { + let dataMine = dataMines[i] + let dataMineObject = operator.selector[dataMine] + let bots = Object.keys(dataMineObject) + for (let j = 0; j < bots.length; j++) { + let bot = bots[j] + let botObject = dataMineObject[bot] + let products = Object.keys(botObject) + for (let k = 0; k < products.length; k++) { + let product = products[k] + let productObject = botObject[product] + if (codeProduct === product) { + operator.dataMinePicker.setSelected(dataMines, operator.selector, undefined, i) + operator.botPicker.setSelected(bots, dataMineObject, operator.selector, j) + operator.productPicker.setSelected(products, botObject, dataMineObject, k) + let properties = Object.keys(productObject.properties) + for (let m = 0; m < properties.length; m++) { + let property = properties[m] + let propertyObject = productObject.properties[property] + if (codeProperty === property) { + operator.propertyPicker.setSelected(properties, productObject.properties, botObject, m) + let values = propertyObject.possibleValues + for (let n = 0; n < values.length; n++) { + let value = values[n] + let valueObject = propertyObject[value] + if (codeValue === value) { + operator.valuePicker.setSelected(propevaluesrties, propertyObject, productObject, n) + } + } + } + } + } + } + } + } + } + } + } + function scanDataMines () { let selector = {} diff --git a/FloatingSpace/Picker.js b/FloatingSpace/Picker.js index 45e4143d2..1d3d0d15d 100644 --- a/FloatingSpace/Picker.js +++ b/FloatingSpace/Picker.js @@ -5,9 +5,9 @@ function newPicker () { let thisObject = { container: undefined, selectedItem: 0, - getValue: getValue, onParentChanged: onParentChanged, getSelected: getSelected, + setSelected: setSelected, physics: physics, drawBackground: drawBackground, drawForeground: drawForeground, @@ -55,10 +55,17 @@ function newPicker () { onMouseWheelEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseWheel', onMouseWheel) } - function getValue () { + function getSelected () { return optionsList[selected] } + function setSelected (pOptionsList, pCurrent, pParent, pSelected) { + optionsList = pOptionsList + current = pCurrent + parent = pParent + selected = pSelected + } + function onParentChanged (event) { if (event.parent !== undefined) { parent = event.parent