From d8d69a2b702c8113da823e0c169909c2b80ca6eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Capucho?= Date: Sat, 31 Jan 2026 00:25:27 +0000 Subject: [PATCH] Implement text replacement LCM operator --- .../service-rule-design.component.html | 17 ++++++++++++ .../services/blockly-java.service.ts | 12 +++++++++ src/assets/blockly/custom_java_blocks.js | 26 +++++++++++++++++++ 3 files changed, 55 insertions(+) diff --git a/src/app/p_services/admin/lifeCycleManagement/service-rule-design/service-rule-design.component.html b/src/app/p_services/admin/lifeCycleManagement/service-rule-design/service-rule-design.component.html index d43e091..38a27c8 100644 --- a/src/app/p_services/admin/lifeCycleManagement/service-rule-design/service-rule-design.component.html +++ b/src/app/p_services/admin/lifeCycleManagement/service-rule-design/service-rule-design.component.html @@ -198,6 +198,23 @@ + + + + textVariable + + + + + before + + + + + after + + + diff --git a/src/app/p_services/admin/lifeCycleManagement/services/blockly-java.service.ts b/src/app/p_services/admin/lifeCycleManagement/services/blockly-java.service.ts index 84cd53c..ae12457 100644 --- a/src/app/p_services/admin/lifeCycleManagement/services/blockly-java.service.ts +++ b/src/app/p_services/admin/lifeCycleManagement/services/blockly-java.service.ts @@ -803,6 +803,18 @@ export class BlocklyJavaService { return [argument0 + operator, Blockly.Java.ORDER_FUNCTION_CALL]; }; + Blockly.Java['text_replace'] = function (block: { getFieldValue: (arg0: string) => string; }) { + // Search the text for a substring. + var argument0 = Blockly.Java.valueToCode(block, 'SEARCH', + Blockly.Java.ORDER_NONE) || '""'; + var argument1 = Blockly.Java.valueToCode(block, 'REPLACE', + Blockly.Java.ORDER_NONE) || '""'; + var argument2 = Blockly.Java.valueToCode(block, 'STRING', + Blockly.Java.ORDER_MEMBER) || '""'; + var code = argument2 + '.replace(' + argument0 + ',' + argument1 + ')'; + return [code, Blockly.Java.ORDER_MEMBER]; + }; + Blockly.Java['text_print'] = function (block: any) { // Print statement. var argument0 = Blockly.Java.valueToCode(block, 'TEXT', diff --git a/src/assets/blockly/custom_java_blocks.js b/src/assets/blockly/custom_java_blocks.js index 8526030..64ea0d9 100644 --- a/src/assets/blockly/custom_java_blocks.js +++ b/src/assets/blockly/custom_java_blocks.js @@ -706,6 +706,32 @@ Blockly.Blocks['variable_set_string'] = { customContextMenu: Blockly.Blocks['variables_get'].customContextMenu }; +Blockly.Blocks['text_replace'] = { + /** + * Block for string replacement. + * @this Blockly.Block + */ + init: function() { + this.setStyle('text_blocks'); + + this.appendValueInput("STRING") + .setCheck("String") + .appendField("in text"); + + this.appendValueInput("SEARCH") + .setCheck("String") + .appendField("replace"); + + this.appendValueInput('REPLACE') + .setCheck("String") + .appendField("with"); + + this.setInputsInline(true); + this.setOutput(true,'String'); + this.setTooltip("Replaces all occurrences of a substring in a string with another"); + }, +}; + -- GitLab