diff --git a/js/rulesAssistant/conditionEditor.js b/js/rulesAssistant/conditionEditorTree.js similarity index 99% rename from js/rulesAssistant/conditionEditor.js rename to js/rulesAssistant/conditionEditorTree.js index e6f4ec6be0004e6857e6223bd5ec849d95752fb4..49cbb8e46fa67c537dd8d87fe6a3059820b61bd3 100644 --- a/js/rulesAssistant/conditionEditor.js +++ b/js/rulesAssistant/conditionEditorTree.js @@ -1,4 +1,7 @@ -App.RA.Activation.Editor = (function() { +/** + * All functions should only be called from z1-conditionEditorController.js + */ +App.RA.Activation.TreeEditor = (function() { /** * @type {HTMLDivElement} */ @@ -14,14 +17,13 @@ App.RA.Activation.Editor = (function() { /** * @param {FC.RA.PostFixRule} rule - * @returns {HTMLDivElement} + * @param {HTMLDivElement}parent */ - function editor(rule) { + function editor(rule, parent) { rulePartMap = new Map(); currentRule = deserializeRule(rule); - editorNode = document.createElement("div"); + editorNode = parent; editorNode.append(buildEditor()); - return editorNode; } function refreshEditor() { diff --git a/js/rulesAssistant/z1-conditionEditorController.js b/js/rulesAssistant/z1-conditionEditorController.js new file mode 100644 index 0000000000000000000000000000000000000000..abf3b05fd9db17079b2cfae8af0724a26ef94517 --- /dev/null +++ b/js/rulesAssistant/z1-conditionEditorController.js @@ -0,0 +1,48 @@ +App.RA.Activation.Editor = (function() { + let advanced = true; + /** + * @type {HTMLDivElement} + */ + let editorNode = null; + + /** + * @param {FC.RA.PostFixRule} rule + * @returns {HTMLDivElement} + */ + function editor(rule) { + editorNode = document.createElement("div"); + if (advanced) { + App.RA.Activation.TreeEditor.build(rule, editorNode); + } else { + // TODO basic + } + return editorNode; + } + + /** + * Save the rule, if it is valid. + * + * @param {(rule:FC.RA.PostFixRule)=>void} callback + */ + function saveEditor(callback) { + if (advanced) { + App.RA.Activation.TreeEditor.save(callback); + } else { + // TODO basic + } + } + + function resetEditor() { + App.RA.Activation.TreeEditor.reset(); + // TODO basic + editorNode = null; + } + + return { + build: editor, + save: saveEditor, + reset: resetEditor, + // Because of this reference we need to load after conditionEditorTree.js + validateRule: App.RA.Activation.TreeEditor.validateRule, + }; +})();