From 984a719cbf4da001182d4acf1f2eacadffdee179 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Fri, 28 Feb 2025 16:24:46 +0400 Subject: [PATCH] #4 -- Add consequent functions --- src/main/resources/public/js/fuzzyRule.js | 47 ++++++++++++++++++--- src/main/resources/templates/rule/edit.html | 14 +++--- 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/main/resources/public/js/fuzzyRule.js b/src/main/resources/public/js/fuzzyRule.js index 248aa27..ac8385d 100644 --- a/src/main/resources/public/js/fuzzyRule.js +++ b/src/main/resources/public/js/fuzzyRule.js @@ -149,13 +149,13 @@ function fuzzyTermsValueChanged() { createRule(); } -function addVariableSelect(projectId, variableVal) { +function createVariableSelect(projectId, variableVal) { let variablesElement = $(""); fillVariables(projectId, variablesElement, variableVal); return variablesElement; } -function addFuzzyTermsSelect(variablesElement, termVal) { +function createFuzzyTermsSelect(variablesElement, termVal) { let fuzzyTermsElement = $(""); if ($(variablesElement).val()) { fillFuzzyTerms(variablesElement, fuzzyTermsElement, termVal); @@ -168,6 +168,11 @@ function removeAntecedent(buttonElement) { fuzzyTermsValueChanged(); } +function removeConsequent(buttonElement) { + $(buttonElement).parent().remove(); + //fuzzyTermsValueChanged(); +} + function addAntecedent(parentElement, projectId, variableVal, termVal) { let rowElement = $("
"); if ($(parentElement).find('.row').length) { @@ -175,8 +180,8 @@ function addAntecedent(parentElement, projectId, variableVal, termVal) { } else { $(rowElement).append(""); } - let variablesElement = addVariableSelect(projectId, variableVal); - let fuzzyTermsElement = addFuzzyTermsSelect(variablesElement, termVal); + let variablesElement = createVariableSelect(projectId, variableVal); + let fuzzyTermsElement = createFuzzyTermsSelect(variablesElement, termVal); $(variablesElement).on("change", function () { variableValueChanged(variablesElement, fuzzyTermsElement) }); @@ -192,10 +197,42 @@ function addAntecedent(parentElement, projectId, variableVal, termVal) { $(parentElement).append(rowElement); } +function addConsequent(parentElement, projectId, variableVal, termVal) { + let rowElement = $("
"); + if ($(parentElement).find('.row').length) { + $(rowElement).append(""); + } else { + $(rowElement).append(""); + } + let variablesElement = createVariableSelect(projectId, variableVal); + let fuzzyTermsElement = createFuzzyTermsSelect(variablesElement, termVal); + $(variablesElement).on("change", function () { + variableValueChanged(variablesElement, fuzzyTermsElement) + }); + $(fuzzyTermsElement).on("change", function () { + fuzzyTermsValueChanged() + }); + $(rowElement).append(variablesElement); + $(rowElement).append(""); + $(rowElement).append(fuzzyTermsElement); + if ($(parentElement).find('.row').length) { + $(rowElement).append("-"); + } + $(parentElement).append(rowElement); +} + function addAntecedentFromRule(parentElement, projectId, ruleContent) { let antecedentComponents = getAntecedentComponents(getAntecedent(ruleContent)); for (let i = 0; i < antecedentComponents.length; i++) { - var a = antecedentComponents[i]; + let a = antecedentComponents[i]; addAntecedent(parentElement, projectId, getVariable(a), getVariableValue(a)); } +} + +function addConsequentFromRule(parentElement, projectId, ruleContent) { + let consequentComponents = getConsequentComponents(getConsequent(ruleContent)); + for (let i = 0; i < consequentComponents.length; i++) { + let c = consequentComponents[i]; + addConsequent(parentElement, projectId, getVariable(c), getVariableValue(c)); + } } \ No newline at end of file diff --git a/src/main/resources/templates/rule/edit.html b/src/main/resources/templates/rule/edit.html index 7926b6e..8d7908c 100644 --- a/src/main/resources/templates/rule/edit.html +++ b/src/main/resources/templates/rule/edit.html @@ -47,11 +47,15 @@