Commit b252b250 authored by Christos Tranoris's avatar Christos Tranoris
Browse files

createServiceRefIf block with Characteristics

parent 3281587a
Loading
Loading
Loading
Loading
+63 −6
Original line number Diff line number Diff line
@@ -1471,11 +1471,65 @@ export class ServiceRuleDesignComponent implements OnInit {
      var avalue =  Blockly.Java.valueToCode(block, 'CONDITION',
                Blockly.Java.ORDER_ASSIGNMENT) || 'true';

      var code = 'createServiceRefIf('  + serviceName    +', '+ avalue   +');\n';
      var charvalsVarName =  'charvals';      
      //put it in braces so to ensure the scope of the hashmap variable
      var code = '{\n';

      var charvalsVarName =  'charvals';
      code += 'java.util.HashMap<String,String> ' + charvalsVarName + ' = new java.util.HashMap<>();\n';

      var varray = '[';
      var cvs =  Blockly.Java.valueToCode(block, 'CHARVALUES', Blockly.Java.ORDER_NONE)  || null ;
      console.log( cvs );
      var objects = JSON.parse( cvs );
      console.log( objects );
      if (objects){
        objects.forEach(element => {
          var charname =  element.charname;
          var avalue =  element.charvalue; 
          code += charvalsVarName + '.put(' + charname + ',' +avalue + ');\n';
        });
      }
      varray += ']';

      code += 'createServiceRefIf('  + serviceName    +', '+ avalue +', '+ charvalsVarName  +');\n';
      code += '}\n';
      return code;
  };

  Blockly.Java['createResourceRefIf'] = function(block: any) {
    var resourceName = Blockly.Java.valueToCode(block, 'RESOURCE_NAME',
      Blockly.Java.ORDER_NONE) || '""';
    
  
      var avalue =  Blockly.Java.valueToCode(block, 'CONDITION',
                Blockly.Java.ORDER_ASSIGNMENT) || 'true';
                
      var charvalsVarName =  'charvals';      
      //put it in braces so to ensure the scope of the hashmap variable
      var code = '{\n';

      var charvalsVarName =  'charvals';
      code += 'java.util.HashMap<String,String> ' + charvalsVarName + ' = new java.util.HashMap<>();\n';

      var varray = '[';
      var cvs =  Blockly.Java.valueToCode(block, 'CHARVALUES', Blockly.Java.ORDER_NONE)  || null ;
      console.log( cvs );
      var objects = JSON.parse( cvs );
      console.log( objects );
      if (objects){
        objects.forEach(element => {
          var charname =  element.charname;
          var avalue =  element.charvalue; 
          code += charvalsVarName + '.put(' + charname + ',' +avalue + ');\n';
        });
      }
      varray += ']';

      code += 'createResourceRefIf('  + resourceName    +', '+ avalue +', '+ charvalsVarName  +');\n';
      code += '}\n';
      return code;
  };

  
  Blockly.Java['getServiceRefName'] = function(block: any) {
@@ -1598,8 +1652,11 @@ export class ServiceRuleDesignComponent implements OnInit {
    var objects = JSON.parse( cvs );
    console.log( objects );

	var charvalsVarName =  'charvals_'+ Math.floor(Math.random() * 1000) + 1;
    var code = 'java.util.HashMap<String,String> ' + charvalsVarName + ' = new java.util.HashMap<>();\n';
    //var charvalsVarName =  'charvals_'+ Math.floor(Math.random() * 1000) + 1;
    var charvalsVarName =  'charvals';
    //put it in braces so to ensure the scope of the hashmap variable
    var code = '{\n';
    code += 'java.util.HashMap<String,String> ' + charvalsVarName + ' = new java.util.HashMap<>();\n';

    var varray = '[';

@@ -1613,7 +1670,7 @@ export class ServiceRuleDesignComponent implements OnInit {
    varray += ']';

    code += 'setServiceRefCharacteristicsValues(' + servicename +', ' + charvalsVarName + ');\n';

    code += '}\n';

    return  code;
  };
+15 −2
Original line number Diff line number Diff line
@@ -1214,8 +1214,16 @@ Blockly.Blocks['example_variable_typed'] = {
          .appendField("Create Ref Service");
      this.appendValueInput("CONDITION")
          .setCheck("Boolean")
          .setAlign(Blockly.ALIGN_RIGHT)
          .appendField("if");
      this.setInputsInline(true);

      this.appendValueInput("CHARVALUES")
        .setCheck("Array")
        .setAlign(Blockly.ALIGN_RIGHT)
        .appendField("Characteristics");  


      this.setInputsInline(false);
      this.setPreviousStatement(true, null);
      this.setNextStatement(true, null);
      this.setColour(230);
@@ -1231,8 +1239,13 @@ Blockly.Blocks['example_variable_typed'] = {
          .appendField("Create Ref Resource");
      this.appendValueInput("CONDITION")
          .setCheck("Boolean")
          .setAlign(Blockly.ALIGN_RIGHT)
          .appendField("if");
      this.setInputsInline(true);
          this.appendValueInput("CHARVALUES")
          .setCheck("Array")
          .setAlign(Blockly.ALIGN_RIGHT)
          .appendField("Characteristics");  
      this.setInputsInline(false);
      this.setPreviousStatement(true, null);
      this.setNextStatement(true, null);
      this.setColour(230);