From 3b34038445536f476a90f2e5913f7dc888b89b82 Mon Sep 17 00:00:00 2001 From: marisaleung Date: Tue, 16 May 2017 18:39:29 -0700 Subject: [PATCH] Add variable info to xml generated in variables.js --- core/variables.js | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/core/variables.js b/core/variables.js index 387349a66..5b3ced3bf 100644 --- a/core/variables.js +++ b/core/variables.js @@ -32,6 +32,7 @@ goog.provide('Blockly.Variables'); goog.require('Blockly.Blocks'); goog.require('Blockly.constants'); +goog.require('Blockly.VariableModel'); goog.require('Blockly.Workspace'); goog.require('goog.string'); @@ -105,12 +106,8 @@ Blockly.Variables.allVariables = function(root) { * @return {!Array.} Array of XML block elements. */ Blockly.Variables.flyoutCategory = function(workspace) { - var variableNameList = []; var variableModelList = workspace.getVariablesOfType(''); - for (var i = 0; i < variableModelList.length; i++) { - variableNameList.push(variableModelList[i].name); - } - variableNameList.sort(goog.string.caseInsensitiveCompare); + variableModelList.sort(Blockly.VariableModel.compareByName); var xmlList = []; var button = goog.dom.createDom('button'); @@ -123,12 +120,13 @@ Blockly.Variables.flyoutCategory = function(workspace) { xmlList.push(button); - if (variableNameList.length > 0) { + if (variableModelList.length > 0) { + var firstVariable = variableModelList[0]; if (Blockly.Blocks['variables_set']) { var gap = Blockly.Blocks['math_change'] ? 8 : 24; var blockText = '' + '' + - '' + variableNameList[0] + '' + + Blockly.Variables.generateVariableFieldXml_(firstVariable) + '' + ''; var block = Blockly.Xml.textToDom(blockText).firstChild; @@ -138,7 +136,7 @@ Blockly.Variables.flyoutCategory = function(workspace) { var gap = Blockly.Blocks['variables_get'] ? 20 : 8; var blockText = '' + '' + - '' + variableNameList[0] + '' + + Blockly.Variables.generateVariableFieldXml_(firstVariable) + '' + '' + '1' + @@ -150,11 +148,11 @@ Blockly.Variables.flyoutCategory = function(workspace) { xmlList.push(block); } - for (var i = 0; i < variableNameList.length; i++) { + for (var i = 0, variable; variable = variableModelList[i]; i++) { if (Blockly.Blocks['variables_get']) { var blockText = '' + '' + - '' + variableNameList[i] + '' + + Blockly.Variables.generateVariableFieldXml_(variable) + '' + ''; var block = Blockly.Xml.textToDom(blockText).firstChild; @@ -280,3 +278,18 @@ Blockly.Variables.promptName = function(promptText, defaultText, callback) { callback(newVar); }); }; + +/** + * Generate XML string for variable field. + * @param {!Blockly.VariableModel} variableModel The variable model to generate + * an XML string from. + * @return {string} The generated XML. + * @private + */ +Blockly.Variables.generateVariableFieldXml_ = function(variableModel) { + var xmlString = ''+ + variableModel.name + + ''; + return xmlString; +};