Merge pull request #189 from kencheung/clone-refactoring-svg

Refactor duplicated callback function for collapse and expand options
This commit is contained in:
Neil Fraser
2015-10-09 13:31:08 -07:00

View File

@@ -677,19 +677,28 @@ Blockly.WorkspaceSvg.prototype.showContextMenu_ = function(e) {
}
}
// Option to collapse top blocks.
var collapseOption = {enabled: hasExpandedBlocks};
collapseOption.text = Blockly.Msg.COLLAPSE_ALL;
collapseOption.callback = function() {
/*
* Option to collapse or expand top blocks
* @param {bool} shouldCollapse whether a block should collapse
* @private
*/
function toggleOption(shouldCollapse) {
var ms = 0;
for (var i = 0; i < topBlocks.length; i++) {
var block = topBlocks[i];
while (block) {
setTimeout(block.setCollapsed.bind(block, true), ms);
setTimeout(block.setCollapsed.bind(block, shouldCollapse), ms);
block = block.getNextBlock();
ms += COLLAPSE_DELAY;
}
}
}
// Option to collapse top blocks.
var collapseOption = {enabled: hasExpandedBlocks};
collapseOption.text = Blockly.Msg.COLLAPSE_ALL;
collapseOption.callback = function() {
toggleOption(true);
};
menuOptions.push(collapseOption);
@@ -697,15 +706,7 @@ Blockly.WorkspaceSvg.prototype.showContextMenu_ = function(e) {
var expandOption = {enabled: hasCollapsedBlocks};
expandOption.text = Blockly.Msg.EXPAND_ALL;
expandOption.callback = function() {
var ms = 0;
for (var i = 0; i < topBlocks.length; i++) {
var block = topBlocks[i];
while (block) {
setTimeout(block.setCollapsed.bind(block, false), ms);
block = block.getNextBlock();
ms += COLLAPSE_DELAY;
}
}
toggleOption(false);
};
menuOptions.push(expandOption);
}