From 66975c8f94d92f1008529cf01825fdfe5800ac9b Mon Sep 17 00:00:00 2001 From: Rachel Fenichel Date: Fri, 15 Dec 2017 13:44:27 -0800 Subject: [PATCH] Rebase --- blocks/variables_dynamic.js | 10 +++++----- core/flyout_base.js | 3 +++ core/variable_map.js | 14 ++++++++++++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/blocks/variables_dynamic.js b/blocks/variables_dynamic.js index 5d523f7e3..78598068b 100644 --- a/blocks/variables_dynamic.js +++ b/blocks/variables_dynamic.js @@ -98,11 +98,11 @@ Blockly.Constants.VariablesDynamic.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MI */ customContextMenu: function(options) { // Getter blocks have the option to create a setter block, and vice versa. - if(this.isInFlyout){ + if (this.isInFlyout) { return; } - var opposite_type ; - var contextMenuMsg ; + var opposite_type; + var contextMenuMsg; if (this.type == 'variables_get_dynamic') { opposite_type = 'variables_set_dynamic'; contextMenuMsg = Blockly.Msg.VARIABLES_GET_CREATE_SET; @@ -124,8 +124,8 @@ Blockly.Constants.VariablesDynamic.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MI options.push(option); }, onchange: function() { - var name = this.getFieldValue('VAR'); - var variableModel = this.workspace.getVariable(name); + var id = this.getFieldValue('VAR'); + var variableModel = this.workspace.getVariableById(id); if (this.type == 'variables_get_dynamic') { this.outputConnection.setCheck(variableModel.type); } else { diff --git a/core/flyout_base.js b/core/flyout_base.js index 29ca24d18..6ee69aa30 100644 --- a/core/flyout_base.js +++ b/core/flyout_base.js @@ -269,6 +269,9 @@ Blockly.Flyout.prototype.init = function(targetWorkspace) { this.workspace_.renameVariableById = this.targetWorkspace_.renameVariableById.bind(this.targetWorkspace_); + + this.workspace_.getVariableTypes = + this.targetWorkspace_.getVariableTypes.bind(this.targetWorkspace_); }; /** diff --git a/core/variable_map.js b/core/variable_map.js index 5081db09a..0995d4fdd 100644 --- a/core/variable_map.js +++ b/core/variable_map.js @@ -247,11 +247,21 @@ Blockly.VariableMap.prototype.getVariablesOfType = function(type) { }; /** - * Return all variable types. + * Return all variable types. This list always contains the empty string. * @return {!Array.} List of variable types. */ Blockly.VariableMap.prototype.getVariableTypes = function() { - return Object.keys(this.variableMap_); + var types = Object.keys(this.variableMap_); + var hasEmpty = false; + for (var i = 0; i < types.length; i++) { + if (types[i] == '') { + hasEmpty = true; + } + } + if (!hasEmpty) { + types.push(''); + } + return types; }; /**