From cc1400a47b92ddeb9e80082f0aea37786690a52e Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Wed, 6 Dec 2023 13:21:17 +0200 Subject: [PATCH] adding code for multiline block --- .gitignore | 1 + .../service-rule-design.component.html | 6 ++- .../service-rule-design.component.ts | 9 ++++- .../services/blockly-java.service.ts | 5 +++ src/assets/blockly/custom_blocks.js | 39 ++++++++++++++++++- src/assets/blockly/custom_java_blocks.js | 21 ++++++++++ 6 files changed, 77 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 889c261..1f2405b 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ src/assets/config/config.prod.json src/assets/config/config.theming.json /src/assets/config/theming.scss /.angular +/.tmp/ 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 faf7199..fd08ecc 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 @@ -128,8 +128,10 @@ - - + + + + diff --git a/src/app/p_services/admin/lifeCycleManagement/service-rule-design/service-rule-design.component.ts b/src/app/p_services/admin/lifeCycleManagement/service-rule-design/service-rule-design.component.ts index 9001a4c..5e620b0 100644 --- a/src/app/p_services/admin/lifeCycleManagement/service-rule-design/service-rule-design.component.ts +++ b/src/app/p_services/admin/lifeCycleManagement/service-rule-design/service-rule-design.component.ts @@ -108,6 +108,7 @@ export class ServiceRuleDesignComponent implements OnInit { this.workspace = Blockly.inject('blocklyDiv', { toolbox: document.getElementById('toolbox'), + theme: Blockly.Themes.Halloween, trashcan: true, scrollbars: true }); @@ -601,7 +602,13 @@ export class ServiceRuleDesignComponent implements OnInit { // workspace.registerToolboxCategoryCallback( 'SPECCHARVARIABLES_BOOL', this.charvarsBool); // workspace.registerToolboxCategoryCallback( 'SPECCHARVARIABLES_SET', this.charvarsSet); - + Blockly.Java['literal_text_multiline'] = function(block: { getFieldValue: (arg0: string) => any; }) { + // Text value. + var code = '"""\n' + block.getFieldValue('TEXT') + '\n"""\n'; + + return [code, Blockly.Java.ORDER_ATOMIC]; + }; + Blockly.Java['changecharacteristicvalue'] = function (block: any) { // Print statement. 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 f269283..84cd53c 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 @@ -2107,7 +2107,12 @@ Blockly.Java['lists_getSublist'] = function(block: { getFieldValue: (arg0: strin }; + + + + + Blockly.Java['literal_text'] = function(block: { getFieldValue: (arg0: string) => any; }) { // Text value. var code = Blockly.Java.quote_(block.getFieldValue('TEXT')); diff --git a/src/assets/blockly/custom_blocks.js b/src/assets/blockly/custom_blocks.js index 7496b54..4a834e1 100644 --- a/src/assets/blockly/custom_blocks.js +++ b/src/assets/blockly/custom_blocks.js @@ -42,8 +42,45 @@ Blockly.defineBlocksWithJsonArray([ } ]); + /*************************************************************************** + * + * Text RELATED + * + ****************************************************************************/ - + Blockly.Blocks['literal_text_multiline'] = { + /** + * Block for text value. + * @this Blockly.Block + */ + init: function() { + + var bff = new Blockly.FieldMultilineInput(''); + bff.maxLines_ = 15; + + this.appendDummyInput() + .appendField(this.newQuote_(true)) + .appendField( bff, 'TEXT') + .appendField(this.newQuote_(false)); + this.setOutput(true, 'String'); + this.setColour(180); + this.setTooltip("A multi-line text input"); + }, + /** + * Create an image of an open or closed quote. + * @param {boolean} open True if open quote, false if closed. + * @return {!Blockly.FieldImage} The field image of the quote. + * @private + */ + newQuote_: function(open) { + if (open == Blockly.RTL) { + var file = 'quote1.png'; + } else { + var file = 'quote0.png'; + } + return new Blockly.FieldImage(Blockly.pathToMedia + file, 12, 12, '"'); + } + }; /*************************************************************************** * diff --git a/src/assets/blockly/custom_java_blocks.js b/src/assets/blockly/custom_java_blocks.js index 030d18d..8526030 100644 --- a/src/assets/blockly/custom_java_blocks.js +++ b/src/assets/blockly/custom_java_blocks.js @@ -450,6 +450,27 @@ } }; + Blockly.Themes.Halloween = Blockly.Theme.defineTheme('halloween', { + + 'base': Blockly.Themes.Classic, + 'fontStyle': { + 'family': 'consolas', + 'weight': 'normal', + 'size': 8 + + }, + + 'categoryStyles': { + }, + 'blockStyles': { + }, + 'componentStyles': { + + } +}); + + + Blockly.Blocks['literal_text'] = { /** * Block for text value. -- GitLab