123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562 |
- // 'use strict';
- // goog.provide('Blockly.Blocks.jsontool');
- // goog.require('Blockly.Blocks');
- // goog.require('Blockly.Types');
- // Blockly.Blocks.jsontool.HUE = 130;
- // /****************************************
- // * * * * * * * * *
- // * Generate JSON *
- // * * * * * * * * *
- // ****************************************/
- // /*JSON tool
- // *setup for generator
- // *name a JSON
- // *add map {key :value} into this JSON
- // */
- // Blockly.Blocks['jsontool_generator_setup'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_SETUP)
- // .appendField(new Blockly.FieldTextInput("jsonVar"), "JSONNAME");
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setPreviousStatement(true, null);
- // this.setNextStatement(true, null);
- // // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // Blockly.Blocks['jsontool_generator_keyvalue'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR);
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_JSONOBJECT)
- // .appendField(new Blockly.FieldTextInput("jsonVar"), "JSONNAME");
- // this.appendValueInput("KEY")
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_KEY);
- // this.appendValueInput("VALUE")
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_VALUE);
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setPreviousStatement(true, null);
- // this.setNextStatement(true, null);
- // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON tool
- // *create a main JSON Object/Array
- // *name a JSON
- // *
- // */
- // Blockly.Blocks['jsontool_generator_main_block'] = {
- // /**
- // * Block for creating a main Json object/array with any number of elements of
- // * { [key:value] or [nested object] or [nested array]}.
- // * @this Blockly.Block
- // */
- // init: function() {
- // // var nameField = new Blockly.FieldTextInput(
- // // Blockly.Msg.JSONTOOL_GENERATOR_MAIN_JSONNAME,
- // // Blockly.jsontool.rename);
- // // nameField.setSpellcheck(false);
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_MAIN_TITLE)
- // .appendField(new Blockly.FieldDropdown([
- // ["Object", "Object"],
- // ["Array", "Array"]
- // ]), "jsontype");
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_MAIN_TITLE_NAME)
- // // .appendField(nameField, 'NAME');
- // .appendField(new Blockly.FieldTextInput("jsonVar"), 'NAME');
- // this.appendStatementInput('STACK');
- // this.setPreviousStatement(true, null);
- // this.setNextStatement(true, null);
- // this.setHelpUrl("");
- // this.setTooltip("");
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // },
- // /**
- // * Initialization of the block has completed, clean up anything that may be
- // * inconsistent as a result of the XML loading.
- // * @this Blockly.Block
- // */
- // validate: function() {
- // var name = Blockly.Procedures.findLegalName(
- // this.getFieldValue('NAME'), this);
- // this.setFieldValue(name, 'NAME');
- // },
- // /**
- // * Add custom menu options to this block's context menu.
- // * @param {!Array} options List of menu options to add to.
- // * @this Blockly.Block
- // */
- // // customContextMenu: function(options) {
- // // // Add option to create caller.
- // // var option = {enabled: true};
- // // var name = this.getFieldValue('NAME');
- // // option.text = Blockly.Msg.PROCEDURES_CREATE_DO.replace('%1', name);
- // // var xmlBlock = goog.dom.createDom('block', null, null);
- // // xmlBlock.setAttribute('type', this.callType_);
- // // option.callback = Blockly.ContextMenu.callbackFactory(this, xmlBlock);
- // // options.push(option);
- // // },
- // // callType_: 'procedures_callnoreturn',
- // /** @return {!string} This block does not define type, so 'undefined' */
- // getVarType: function(varName) {
- // return Blockly.Types.UNDEF;
- // },
- // };
- // /*JSON tool
- // *create a nested JSON Object/Array
- // *name a JSON
- // *nest in the main JSON Object/Array
- // */
- // Blockly.Blocks['jsontool_generator_nested_block'] = {
- // /**
- // * Block for creating a nested Json object/array with any number of elements of
- // * { [key:value] or [nested object] or [nested array]}.
- // * @this Blockly.Block
- // */
- // init: function() {
- // // var nameField = new Blockly.FieldTextInput(
- // // Blockly.Msg.JSONTOOL_GENERATOR_MAIN_JSONNAME,
- // // Blockly.jsontool.rename);
- // // nameField.setSpellcheck(false);
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_NESTED_TITLE)
- // .appendField(new Blockly.FieldDropdown([
- // ["Object", "Object"],
- // ["Array", "Array"]
- // ]), "jsontype");
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_NESTED_TITLE_NAME)
- // // .appendField(nameField, 'NAME');
- // .appendField(new Blockly.FieldTextInput(Blockly.Msg.JSONTOOL_GENERATOR_MAIN_JSONNAME), 'NAME');
- // this.appendStatementInput('STACK1');
- // this.setPreviousStatement(true, null);
- // this.setNextStatement(true, null);
- // this.setHelpUrl("");
- // this.setTooltip("");
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // },
- // /**
- // * Initialization of the block has completed, clean up anything that may be
- // * inconsistent as a result of the XML loading.
- // * @this Blockly.Block
- // */
- // validate: function() {
- // var name = Blockly.Procedures.findLegalName(
- // this.getFieldValue('NAME'), this);
- // this.setFieldValue(name, 'NAME');
- // },
- // /**
- // * Return all variables referenced by this block.
- // * @return {!Array.<string>} List of variable names.
- // * @this Blockly.Block
- // */
- // // /**
- // // * Add custom menu options to this block's context menu.
- // // * @param {!Array} options List of menu options to add to.
- // // * @this Blockly.Block
- // // */
- // // customContextMenu: function(options) {
- // // // Add option to create caller.
- // // var option = {enabled: true};
- // // var name = this.getFieldValue('NAME');
- // // option.text = Blockly.Msg.PROCEDURES_CREATE_DO.replace('%1', name);
- // // var xmlBlock = goog.dom.createDom('block', null, null);
- // // xmlBlock.setAttribute('type', this.callType_);
- // // option.callback = Blockly.ContextMenu.callbackFactory(this, xmlBlock);
- // // options.push(option);
- // // },
- // // callType_: 'procedures_callnoreturn',
- // /** @return {!string} This block does not define type, so 'undefined' */
- // getVarType: function(varName) {
- // return Blockly.Types.UNDEF;
- // },
- // };
- // /**
- // *JSON object generate with [key:value]
- // *
- // */
- // Blockly.Blocks['jsontool_generator_object_keyValue'] = {
- // /**
- // * blocks of key-value for JSON Object
- // * @this Blockly.Block
- // */
- // init: function() {
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.appendValueInput("KEY")
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_KEY);
- // this.appendValueInput("VALUE")
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_VALUE);
- // this.setPreviousStatement(true);
- // this.setNextStatement(true);
- // // this.setOutput(true,"String");
- // this.setInputsInline(true);
- // this.setTooltip("");
- // }
- // };
- // /**
- // *JSON array generate with [value]
- // *
- // */
- // Blockly.Blocks['jsontool_generator_array_value'] = {
- // /**
- // * blocks of value for JSON Array
- // * @this Blockly.Block
- // */
- // init: function() {
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.appendValueInput("VALUE")
- // .appendField(Blockly.Msg.JSONTOOL_GENERATOR_ARRAY_VALUE);
- // this.setPreviousStatement(true);
- // this.setNextStatement(true);
- // // this.setOutput(true,"String");
- // this.setInputsInline(true);
- // this.setTooltip("");
- // }
- // };
- // // /**
- // // *JSON container for create items
- // // *
- // // */
- // // Blockly.Blocks['json_create_with_container'] = {
- // // /**
- // // * Mutator block for json container.
- // // * @this Blockly.Block
- // // */
- // // init: function() {
- // // this.setColour(Blockly.Blocks.jsontool.HUE);
- // // this.appendDummyInput()
- // // .appendField(Blockly.Msg.JSON_CREATE_WITH_CONTAINER_TITLE_ADD);
- // // this.appendStatementInput('STACK');
- // // this.setTooltip("");
- // // this.contextMenu = false;
- // // }
- // // };
- // // /**
- // // *JSON container for add items
- // // *
- // // */
- // // Blockly.Blocks['json_create_with_item'] = {
- // // /**
- // // * Mutator bolck for adding items.
- // // * @this Blockly.Block
- // // */
- // // init: function() {
- // // this.setColour(Blockly.Blocks.jsontool.HUE);
- // // this.appendDummyInput()
- // // .appendField(Blockly.Msg.JSONTOOL_CREATE_WITH_ITEM_TITLE);
- // // this.setPreviousStatement(true);
- // // this.setNextStatement(true);
- // // this.setTooltip("");
- // // this.contextMenu = false;
- // // }
- // // };
- // /****************************************
- // * * * * * * * * *
- // * Parse JSON *
- // * * * * * * * * *
- // ****************************************/
- // /*JSON tool
- // *parse json setup
- // */
- // Blockly.Blocks['jsontool_parse_setup'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_SETUP);
- // this.appendDummyInput()
- // .appendField(new Blockly.FieldTextInput("jsonVar"), "JSONNAME")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_JSONOBJECT);
- // this.appendValueInput("OBJECT_SIZE")
- // .appendField(Blockly.Msg.JSONTOOL_OBJECT_SIZE);
- // this.appendValueInput("ARRAY_SIZE")
- // .appendField(Blockly.Msg.JSONTOOL_ARRAY_SIZE);
- // this.appendValueInput("RESPONSE")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_RESPONSE);
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setPreviousStatement(true);
- // this.setNextStatement(true);
- // // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON tool
- // *parse json
- // */
- // Blockly.Blocks['jsontool_parse_begin'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_EACH)
- // .appendField(new Blockly.FieldTextInput("jsonVar"), "JSONNAME");
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_TOVAR)
- // .appendField(new Blockly.FieldVariable(
- // Blockly.Msg.VARIABLES_DEFAULT_NAME), 'VAR')
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_VARTYPE)
- // .appendField(new Blockly.FieldDropdown(
- // [
- // ["Text", "Text"],
- // ["Number", "Number"],
- // ["Boolean", "Boolean"],
- // ["Large Number", "Large Number"],
- // ["Decimal", "Decimal"]
- // ]), 'JSONVAR_TYPE');
- // this.appendValueInput("KEY")
- // // .appendField(Blockly.Msg.JSONTOOL_PARSE_BY);
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // // this.setOutput(true,Blockly.Types.TEXT.output);
- // this.setPreviousStatement(true, null);
- // this.setNextStatement(true, null);
- // // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // // this.jsonInit({
- // // "message0": Blockly.Msg.JSONTOOL_PARSE_KEYVALUE,
- // // "args0": [
- // // {
- // // "type": "field_input",
- // // "name": "JSONNAME",
- // // "check": "Text",
- // // "text": "jsonVar"
- // // },
- // // {
- // // "type": "input_value",
- // // "name": "KEY",
- // // "check": "Text"
- // // }
- // // ],
- // // "output": null,
- // // "colour": Blockly.Blocks.jsontool.HUE,
- // // "inputsInline": true,
- // // });
- // // },
- // // /**
- // // * Assigns a type to the block based on the selected type to cast.
- // // * @return {!string} Blockly type for this block configuration.
- // // * @this Blockly.Block
- // // */
- // // getBlockType: function() {
- // // var blocklyTypeKey = this.getFieldValue('JSONVAR_TYPE');
- // // return Blockly.Types[blocklyTypeKey];
- // // },
- // getVarType: function(varName) {
- // // var varType = this.getFieldValue('JSONVAR_TYPE');
- // // console.log(Blockly.Types[varType]);
- // // return Blockly.Types[varType];
- // let vartype = Blockly.Types.UNDEF;
- // if (this && this.getFieldValue('JSONVAR_TYPE') === 'Text') {
- // vartype = Blockly.Types.TEXT;
- // } else if (this && this.getFieldValue('JSONVAR_TYPE') === 'Number') {
- // vartype = Blockly.Types.NUMBER;
- // } else if (this && this.getFieldValue('JSONVAR_TYPE') === 'Boolean') {
- // vartype = Blockly.Types.BOOLEAN;
- // } else if (this && this.getFieldValue('JSONVAR_TYPE') === 'Large Number') {
- // vartype = Blockly.Types.LARGE_NUMBER;
- // } else if (this && this.getFieldValue('JSONVAR_TYPE') === 'Decimal') {
- // vartype = Blockly.Types.DECIMAL;
- // }
- // return vartype;
- // }
- // };
- // /*JSON parse tool
- // *parse json with key-value
- // */
- // Blockly.Blocks['jsontool_parse_key'] = {
- // init: function() {
- // this.appendValueInput("KEY")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_KEY);
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setOutput(true, Blockly.Types.TEXT.output);
- // // this.setPreviousStatement(true, null);
- // // this.setNextStatement(true, null);
- // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON parse tool
- // *parse json with array-value in Json object
- // */
- // Blockly.Blocks['jsontool_parse_arr_inobject'] = {
- // init: function() {
- // this.appendValueInput("VAR")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_ARRAY);
- // this.appendValueInput("INDEX")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_INDEX);
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setOutput(true, Blockly.Types.TEXT.output);
- // // this.setPreviousStatement(true, null);
- // // this.setNextStatement(true, null);
- // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON parse tool
- // *parse json with array-value in Json array
- // */
- // Blockly.Blocks['jsontool_parse_arr_inarray'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_ARRAY);
- // this.appendValueInput("INDEX")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_INDEX);
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setOutput(true, Blockly.Types.TEXT.output);
- // // this.setPreviousStatement(true, null);
- // // this.setNextStatement(true, null);
- // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON parse tool
- // *parse json with key-value with nests
- // */
- // Blockly.Blocks['jsontool_parse_key_nest'] = {
- // init: function() {
- // this.appendValueInput("KEY")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_KEY);
- // this.appendValueInput("NEST")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_NEST);
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setOutput(true, Blockly.Types.TEXT.output);
- // // this.setPreviousStatement(true, null);
- // // this.setNextStatement(true, null);
- // // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON parse tool
- // *parse json with array-value in JSON object with nests
- // */
- // Blockly.Blocks['jsontool_parse_arr_inobject_nest'] = {
- // init: function() {
- // this.appendValueInput("VAR")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_ARRAY);
- // this.appendValueInput("INDEX")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_INDEX);
- // this.appendValueInput("NEST")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_NEST);
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setOutput(true, Blockly.Types.TEXT.output);
- // // this.setPreviousStatement(true, null);
- // // // this.setNextStatement(true, null);
- // // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON parse tool
- // *parse json with array-value in JSON array with nests
- // */
- // Blockly.Blocks['jsontool_parse_arr_inarray_nest'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_ARRAY);
- // this.appendValueInput("INDEX")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_INDEX);
- // this.appendValueInput("NEST")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_NEST);
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setOutput(true, Blockly.Types.TEXT.output);
- // // this.setPreviousStatement(true, null);
- // // // this.setNextStatement(true, null);
- // // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON tool
- // *method to print Json data in a pretty way
- // */
- // Blockly.Blocks['jsontool_parse_prettyPrint'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_PRETTYPRINT)
- // .appendField(new Blockly.FieldTextInput("jsonVar"), "JSONNAME")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_PRETTYPRINT_WAY)
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // // this.setOutput(true,Blockly.Types.BOOLEAN.output);
- // this.setPreviousStatement(true, null);
- // this.setNextStatement(true, null);
- // // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON tool
- // *expose JSONmessageBuffer to user
- // *
- // */
- // Blockly.Blocks['jsontool_parse_prettyPrint_display'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_PRETTYPRINT_DISPLAY)
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setOutput(true, Blockly.Types.BOOLEAN.output);
- // // this.setPreviousStatement(true, null);
- // // this.setNextStatement(true, null);
- // // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
- // /*JSON tool
- // *check whether it parse success
- // */
- // Blockly.Blocks['jsontool_parse_isSuccess'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_ISSUCCESS_NAME)
- // .appendField(new Blockly.FieldTextInput("jsonVar"), "JSONNAME")
- // .appendField(Blockly.Msg.JSONTOOL_PARSE_ISSUCCESS)
- // this.setColour(Blockly.Blocks.jsontool.HUE);
- // this.setOutput(true, Blockly.Types.BOOLEAN.output);
- // // this.setPreviousStatement(true, null);
- // // this.setNextStatement(true, null);
- // // this.setInputsInline(true);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // },
- // };
|