Skip to content

Commit

Permalink
Swap order of arguments on domToWorkspace.
Browse files Browse the repository at this point in the history
  • Loading branch information
NeilFraser committed Apr 5, 2016
1 parent 4ac1204 commit 4e42a1b
Show file tree
Hide file tree
Showing 17 changed files with 53 additions and 39 deletions.
4 changes: 2 additions & 2 deletions appengine/storage.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ BlocklyStorage.restoreBlocks = function(opt_workspace) {
if ('localStorage' in window && window.localStorage[url]) {
var workspace = opt_workspace || Blockly.getMainWorkspace();
var xml = Blockly.Xml.textToDom(window.localStorage[url]);
Blockly.Xml.domToWorkspace(workspace, xml);
Blockly.Xml.domToWorkspace(xml, workspace);
}
};

Expand Down Expand Up @@ -181,7 +181,7 @@ BlocklyStorage.loadXml_ = function(xml, workspace) {
}
// Clear the workspace to avoid merge.
workspace.clear();
Blockly.Xml.domToWorkspace(workspace, xml);
Blockly.Xml.domToWorkspace(xml, workspace);
};

/**
Expand Down
2 changes: 1 addition & 1 deletion core/connection.js
Original file line number Diff line number Diff line change
Expand Up @@ -535,7 +535,7 @@ Blockly.Connection.prototype.disconnect = function() {
var shadow = parentConnection.getShadowDom();
if (parentBlock.workspace && shadow && Blockly.Events.recordUndo) {
var blockShadow =
Blockly.Xml.domToBlock(parentBlock.workspace, shadow);
Blockly.Xml.domToBlock(shadow, parentBlock.workspace);
if (blockShadow.outputConnection) {
parentConnection.connect(blockShadow.outputConnection);
} else if (blockShadow.previousConnection) {
Expand Down
2 changes: 1 addition & 1 deletion core/contextmenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ Blockly.ContextMenu.hide = function() {
Blockly.ContextMenu.callbackFactory = function(block, xml) {
return function() {
Blockly.Events.disable();
var newBlock = Blockly.Xml.domToBlock(block.workspace, xml);
var newBlock = Blockly.Xml.domToBlock(xml, block.workspace);
// Move the new block next to the old block.
var xy = block.getRelativeToSurfaceXY();
if (block.RTL) {
Expand Down
4 changes: 2 additions & 2 deletions core/events.js
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ Blockly.Events.Create.prototype.run = function(forward) {
var workspace = Blockly.Workspace.getById(this.workspaceId);
var xml = goog.dom.createDom('xml');
xml.appendChild(this.xml);
Blockly.Xml.domToWorkspace(workspace, xml);
Blockly.Xml.domToWorkspace(xml, workspace);
} else {
for (var i = 0, id; id = this.ids[i]; i++) {
var block = Blockly.Block.getById(id);
Expand Down Expand Up @@ -389,7 +389,7 @@ Blockly.Events.Delete.prototype.run = function(forward) {
var workspace = Blockly.Workspace.getById(this.workspaceId);
var xml = goog.dom.createDom('xml');
xml.appendChild(this.oldXml);
Blockly.Xml.domToWorkspace(workspace, xml);
Blockly.Xml.domToWorkspace(xml, workspace);
}
};

Expand Down
4 changes: 2 additions & 2 deletions core/flyout.js
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ Blockly.Flyout.prototype.show = function(xmlList) {
this.permanentlyDisabled_.length = 0;
for (var i = 0, xml; xml = xmlList[i]; i++) {
if (xml.tagName && xml.tagName.toUpperCase() == 'BLOCK') {
var block = Blockly.Xml.domToBlock(this.workspace_, xml);
var block = Blockly.Xml.domToBlock(xml, this.workspace_);
if (block.disabled) {
// Record blocks that were initially disabled.
// Do not enable these blocks as a result of capacity filtering.
Expand Down Expand Up @@ -636,7 +636,7 @@ Blockly.Flyout.prototype.createBlockFunc_ = function(originBlock) {
Blockly.Events.disable();
// Create the new block by cloning the block in the flyout (via XML).
var xml = Blockly.Xml.blockToDom(originBlock);
var block = Blockly.Xml.domToBlock(workspace, xml);
var block = Blockly.Xml.domToBlock(xml, workspace);
// Place it in the same spot as the flyout copy.
var svgRootOld = originBlock.getSvgRoot();
if (!svgRootOld) {
Expand Down
2 changes: 1 addition & 1 deletion core/workspace_svg.js
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ Blockly.WorkspaceSvg.prototype.paste = function(xmlBlock) {
}
Blockly.terminateDrag_(); // Dragging while pasting? No.
Blockly.Events.disable();
var block = Blockly.Xml.domToBlock(this, xmlBlock);
var block = Blockly.Xml.domToBlock(xmlBlock, this);
// Move the duplicate to original position.
var blockX = parseInt(xmlBlock.getAttribute('x'), 10);
var blockY = parseInt(xmlBlock.getAttribute('y'), 10);
Expand Down
38 changes: 26 additions & 12 deletions core/xml.js
Original file line number Diff line number Diff line change
Expand Up @@ -268,10 +268,17 @@ Blockly.Xml.textToDom = function(text) {

/**
* Decode an XML DOM and create blocks on the workspace.
* @param {!Blockly.Workspace} workspace The workspace.
* @param {!Element} xml XML DOM.
* @param {!Blockly.Workspace} workspace The workspace.
*/
Blockly.Xml.domToWorkspace = function(workspace, xml) {
Blockly.Xml.domToWorkspace = function(xml, workspace) {
if (xml instanceof Blockly.Workspace) {
var swap = xml;
xml = workspace;
workspace = swap;
console.warn('Deprecated call to Blockly.Xml.domToWorkspace, ' +
'swap the arguments.');
}
var width; // Not used in LTR.
if (workspace.RTL) {
width = workspace.getWidth();
Expand All @@ -289,7 +296,7 @@ Blockly.Xml.domToWorkspace = function(workspace, xml) {
var xmlChild = xml.childNodes[i];
var name = xmlChild.nodeName.toLowerCase();
if (name == 'block' || name == 'shadow') {
var block = Blockly.Xml.domToBlock(workspace, xmlChild);
var block = Blockly.Xml.domToBlock(xmlChild, workspace);
var blockX = parseInt(xmlChild.getAttribute('x'), 10);
var blockY = parseInt(xmlChild.getAttribute('y'), 10);
if (!isNaN(blockX) && !isNaN(blockY)) {
Expand All @@ -306,14 +313,21 @@ Blockly.Xml.domToWorkspace = function(workspace, xml) {
/**
* Decode an XML block tag and create a block (and possibly sub blocks) on the
* workspace.
* @param {!Blockly.Workspace} workspace The workspace.
* @param {!Element} xmlBlock XML block element.
* @param {!Blockly.Workspace} workspace The workspace.
* @return {!Blockly.Block} The root block created.
*/
Blockly.Xml.domToBlock = function(workspace, xmlBlock) {
Blockly.Xml.domToBlock = function(xmlBlock, workspace) {
if (xmlBlock instanceof Blockly.Workspace) {
var swap = xmlBlock;
xmlBlock = workspace;
workspace = swap;
console.warn('Deprecated call to Blockly.Xml.domToBlock, ' +
'swap the arguments.');
}
// Create top-level block.
Blockly.Events.disable();
var topBlock = Blockly.Xml.domToBlockHeadless_(workspace, xmlBlock);
var topBlock = Blockly.Xml.domToBlockHeadless_(xmlBlock, workspace);
if (workspace.rendered) {
// Hide connections to speed up assembly.
topBlock.setConnectionsHidden(true);
Expand Down Expand Up @@ -347,12 +361,12 @@ Blockly.Xml.domToBlock = function(workspace, xmlBlock) {
/**
* Decode an XML block tag and create a block (and possibly sub blocks) on the
* workspace.
* @param {!Blockly.Workspace} workspace The workspace.
* @param {!Element} xmlBlock XML block element.
* @param {!Blockly.Workspace} workspace The workspace.
* @return {!Blockly.Block} The root block created.
* @private
*/
Blockly.Xml.domToBlockHeadless_ = function(workspace, xmlBlock) {
Blockly.Xml.domToBlockHeadless_ = function(xmlBlock, workspace) {
var block = null;
var prototypeName = xmlBlock.getAttribute('type');
if (!prototypeName) {
Expand Down Expand Up @@ -447,8 +461,8 @@ Blockly.Xml.domToBlockHeadless_ = function(workspace, xmlBlock) {
input.connection.setShadowDom(childShadowNode);
}
if (childBlockNode) {
blockChild = Blockly.Xml.domToBlockHeadless_(workspace,
childBlockNode);
blockChild = Blockly.Xml.domToBlockHeadless_(childBlockNode,
workspace);
if (blockChild.outputConnection) {
input.connection.connect(blockChild.outputConnection);
} else if (blockChild.previousConnection) {
Expand All @@ -469,8 +483,8 @@ Blockly.Xml.domToBlockHeadless_ = function(workspace, xmlBlock) {
// This could happen if there is more than one XML 'next' tag.
throw 'Next statement is already connected.';
}
blockChild = Blockly.Xml.domToBlockHeadless_(workspace,
childBlockNode);
blockChild = Blockly.Xml.domToBlockHeadless_(childBlockNode,
workspace);
if (!blockChild.previousConnection) {
throw 'Next block does not have previous statement.';
}
Expand Down
2 changes: 1 addition & 1 deletion demos/blockfactory/factory.js
Original file line number Diff line number Diff line change
Expand Up @@ -786,7 +786,7 @@ function init() {
mainWorkspace);
} else {
var xml = '<xml><block type="factory_base" deletable="false" movable="false"></block></xml>';
Blockly.Xml.domToWorkspace(mainWorkspace, Blockly.Xml.textToDom(xml));
Blockly.Xml.domToWorkspace(Blockly.Xml.textToDom(xml), mainWorkspace);
}
mainWorkspace.clearUndo();

Expand Down
6 changes: 3 additions & 3 deletions demos/code/code.js
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,11 @@ Code.loadBlocks = function(defaultXml) {
// Language switching stores the blocks during the reload.
delete window.sessionStorage.loadOnceBlocks;
var xml = Blockly.Xml.textToDom(loadOnce);
Blockly.Xml.domToWorkspace(Code.workspace, xml);
Blockly.Xml.domToWorkspace(xml, Code.workspace);
} else if (defaultXml) {
// Load the editor with default starting blocks.
var xml = Blockly.Xml.textToDom(defaultXml);
Blockly.Xml.domToWorkspace(Code.workspace, xml);
Blockly.Xml.domToWorkspace(xml, Code.workspace);
} else if ('BlocklyStorage' in window) {
// Restore saved blocks in a separate thread so that subsequent
// initialization is not affected from a failed load.
Expand Down Expand Up @@ -270,7 +270,7 @@ Code.tabClick = function(clickedName) {
}
if (xmlDom) {
Code.workspace.clear();
Blockly.Xml.domToWorkspace(Code.workspace, xmlDom);
Blockly.Xml.domToWorkspace(xmlDom, Code.workspace);
}
}

Expand Down
4 changes: 2 additions & 2 deletions demos/generator/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ <h1><a href="https://developers.google.com/blockly/">Blockly</a> &gt;
var workspace = Blockly.inject('blocklyDiv',
{media: '../../media/',
toolbox: document.getElementById('toolbox')});
Blockly.Xml.domToWorkspace(workspace,
document.getElementById('startBlocks'));
Blockly.Xml.domToWorkspace(document.getElementById('startBlocks'),
workspace);

function showCode() {
// Generate JavaScript code and display it.
Expand Down
4 changes: 2 additions & 2 deletions demos/graph/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -338,8 +338,8 @@ <h1><a href="https://developers.google.com/blockly/">Blockly</a> &gt;
{collapse: false,
media: '../../media/',
toolbox: document.getElementById('toolbox')});
Blockly.Xml.domToWorkspace(Graph.workspace,
document.getElementById('startBlocks'));
Blockly.Xml.domToWorkspace(document.getElementById('startBlocks'),
Graph.workspace);
Graph.workspace.clearUndo();

// When Blockly changes, update the graph.
Expand Down
2 changes: 1 addition & 1 deletion demos/headless/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ <h1><a href="https://developers.google.com/blockly/">Blockly</a> &gt;
}
// Create a headless workspace.
var workspace = new Blockly.Workspace();
Blockly.Xml.domToWorkspace(workspace, xml);
Blockly.Xml.domToWorkspace(xml, workspace);
var code = Blockly.Python.workspaceToCode(workspace);
document.getElementById('code_output').value = code;
}
Expand Down
4 changes: 2 additions & 2 deletions demos/interpreter/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@ <h1><a href="https://developers.google.com/blockly/">Blockly</a> &gt;
var workspace = Blockly.inject('blocklyDiv',
{media: '../../media/',
toolbox: document.getElementById('toolbox')});
Blockly.Xml.domToWorkspace(workspace,
document.getElementById('startBlocks'));
Blockly.Xml.domToWorkspace(document.getElementById('startBlocks'),
workspace);

var myInterpreter = null;

Expand Down
4 changes: 2 additions & 2 deletions demos/plane/plane.js
Original file line number Diff line number Diff line change
Expand Up @@ -143,11 +143,11 @@ Plane.loadBlocks = function(defaultXml) {
// Language switching stores the blocks during the reload.
delete window.sessionStorage.loadOnceBlocks;
var xml = Blockly.Xml.textToDom(loadOnce);
Blockly.Xml.domToWorkspace(Plane.workspace, xml);
Blockly.Xml.domToWorkspace(xml, Plane.workspace);
} else if (defaultXml) {
// Load the editor with default starting blocks.
var xml = Blockly.Xml.textToDom(defaultXml);
Blockly.Xml.domToWorkspace(Plane.workspace, xml);
Blockly.Xml.domToWorkspace(xml, Plane.workspace);
}
Plane.workspace.clearUndo();
};
Expand Down
4 changes: 2 additions & 2 deletions demos/rtl/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
{media: '../../media/',
rtl: true,
toolbox: document.getElementById('toolbox')});
Blockly.Xml.domToWorkspace(workspace,
document.getElementById('startBlocks'));
Blockly.Xml.domToWorkspace(document.getElementById('startBlocks'),
workspace);
//window.onbeforeunload = function() {
// return 'Leaving this page will result in the loss of your work.';
//};
Expand Down
2 changes: 1 addition & 1 deletion tests/generators/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@
alert('Error parsing XML:\n' + e);
return;
}
Blockly.Xml.domToWorkspace(workspace, xmlDoc);
Blockly.Xml.domToWorkspace(xmlDoc, workspace);
}

function setOutput(text) {
Expand Down
4 changes: 2 additions & 2 deletions tests/playground.html
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
function fromXml() {
var input = document.getElementById('importExport');
var xml = Blockly.Xml.textToDom(input.value);
Blockly.Xml.domToWorkspace(workspace, xml);
Blockly.Xml.domToWorkspace(xml, workspace);
taChange();
}

Expand Down Expand Up @@ -188,7 +188,7 @@
xml = '<xml xmlns="http://www.w3.org/1999/xhtml">' + xml + '</xml>';
var dom = Blockly.Xml.textToDom(xml);
console.time('Spaghetti domToWorkspace');
Blockly.Xml.domToWorkspace(workspace, dom);
Blockly.Xml.domToWorkspace(dom, workspace);
console.timeEnd('Spaghetti domToWorkspace');
}
var spaghettiXml = [
Expand Down

0 comments on commit 4e42a1b

Please sign in to comment.