mirror of
https://github.com/google/blockly.git
synced 2026-01-10 18:37:09 +01:00
Inject can now take an ID. Also, fix unit tests.
This commit is contained in:
@@ -47,10 +47,11 @@
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
var workspace = null;
|
||||
|
||||
function start() {
|
||||
var toolbox = document.getElementById('toolbox');
|
||||
Blockly.inject(document.getElementById('svg'),
|
||||
{media: '../../media/', toolbox: toolbox});
|
||||
workspace = Blockly.inject('blocklyDiv',
|
||||
{media: '../../media/', toolbox: document.getElementById('toolbox')});
|
||||
}
|
||||
|
||||
function loadXml() {
|
||||
@@ -91,14 +92,14 @@ function fetchFile(xmlUrl) {
|
||||
function fromXml(xmlText) {
|
||||
var output = document.getElementById('importExport');
|
||||
output.value = xmlText;
|
||||
Blockly.mainWorkspace.clear();
|
||||
workspace.clear();
|
||||
try {
|
||||
var xmlDoc = Blockly.Xml.textToDom(xmlText);
|
||||
} catch (e) {
|
||||
alert('Error parsing XML:\n' + e);
|
||||
return;
|
||||
}
|
||||
Blockly.Xml.domToWorkspace(Blockly.mainWorkspace, xmlDoc);
|
||||
Blockly.Xml.domToWorkspace(workspace, xmlDoc);
|
||||
}
|
||||
|
||||
function setOutput(text) {
|
||||
@@ -109,24 +110,24 @@ function setOutput(text) {
|
||||
}
|
||||
|
||||
function toXml() {
|
||||
var xmlDom = Blockly.Xml.workspaceToDom(Blockly.mainWorkspace);
|
||||
var xmlDom = Blockly.Xml.workspaceToDom(workspace);
|
||||
var xmlText = Blockly.Xml.domToPrettyText(xmlDom);
|
||||
setOutput(xmlText);
|
||||
}
|
||||
|
||||
function toJavaScript() {
|
||||
var code = '\'use strict\';\n\n'
|
||||
code += Blockly.JavaScript.workspaceToCode();
|
||||
code += Blockly.JavaScript.workspaceToCode(workspace);
|
||||
setOutput(code);
|
||||
}
|
||||
|
||||
function toPython() {
|
||||
var code = Blockly.Python.workspaceToCode();
|
||||
var code = Blockly.Python.workspaceToCode(workspace);
|
||||
setOutput(code);
|
||||
}
|
||||
|
||||
function toDart() {
|
||||
var code = Blockly.Dart.workspaceToCode();
|
||||
var code = Blockly.Dart.workspaceToCode(workspace);
|
||||
setOutput(code);
|
||||
}
|
||||
</script>
|
||||
@@ -145,15 +146,12 @@ h1 {
|
||||
font-weight: normal;
|
||||
font-size: 140%;
|
||||
}
|
||||
#svg {
|
||||
#blocklyDiv {
|
||||
float: right;
|
||||
height: 95%;
|
||||
width: 69%;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.blocklySvg {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
#importExport {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
@@ -162,7 +160,7 @@ h1 {
|
||||
</head>
|
||||
<body onload="start()">
|
||||
|
||||
<div id="svg"></div>
|
||||
<div id="blocklyDiv"></div>
|
||||
|
||||
<xml id="toolbox" style="display: none">
|
||||
<category name="Unit test">
|
||||
|
||||
@@ -38,35 +38,35 @@ function verify_DB_(msg, expected, db) {
|
||||
|
||||
function test_DB_addConnection() {
|
||||
var db = new Blockly.ConnectionDB();
|
||||
var o2 = {y_: 2};
|
||||
var o2 = {y_: 2, sourceBlock_: {}};
|
||||
db.addConnection_(o2);
|
||||
verify_DB_('Adding connection #2', [o2], db);
|
||||
|
||||
var o4 = {y_: 4};
|
||||
var o4 = {y_: 4, sourceBlock_: {}};
|
||||
db.addConnection_(o4);
|
||||
verify_DB_('Adding connection #4', [o2, o4], db);
|
||||
|
||||
var o1 = {y_: 1};
|
||||
var o1 = {y_: 1, sourceBlock_: {}};
|
||||
db.addConnection_(o1);
|
||||
verify_DB_('Adding connection #1', [o1, o2, o4], db);
|
||||
|
||||
var o3a = {y_: 3};
|
||||
var o3a = {y_: 3, sourceBlock_: {}};
|
||||
db.addConnection_(o3a);
|
||||
verify_DB_('Adding connection #3a', [o1, o2, o3a, o4], db);
|
||||
|
||||
var o3b = {y_: 3};
|
||||
var o3b = {y_: 3, sourceBlock_: {}};
|
||||
db.addConnection_(o3b);
|
||||
verify_DB_('Adding connection #3b', [o1, o2, o3b, o3a, o4], db);
|
||||
}
|
||||
|
||||
function test_DB_removeConnection() {
|
||||
var db = new Blockly.ConnectionDB();
|
||||
var o1 = {y_: 1};
|
||||
var o2 = {y_: 2};
|
||||
var o3a = {y_: 3};
|
||||
var o3b = {y_: 3};
|
||||
var o3c = {y_: 3};
|
||||
var o4 = {y_: 4};
|
||||
var o1 = {y_: 1, sourceBlock_: {}};
|
||||
var o2 = {y_: 2, sourceBlock_: {}};
|
||||
var o3a = {y_: 3, sourceBlock_: {}};
|
||||
var o3b = {y_: 3, sourceBlock_: {}};
|
||||
var o3c = {y_: 3, sourceBlock_: {}};
|
||||
var o4 = {y_: 4, sourceBlock_: {}};
|
||||
db.addConnection_(o1);
|
||||
db.addConnection_(o2);
|
||||
db.addConnection_(o3c);
|
||||
|
||||
@@ -55,13 +55,13 @@ function test_maxBlocksWorkspace() {
|
||||
var blockA = Blockly.Block.obtain(workspace, '');
|
||||
var blockB = Blockly.Block.obtain(workspace, '');
|
||||
assertEquals('Infinite capacity.', Infinity, workspace.remainingCapacity());
|
||||
workspace.maxBlocks = 3;
|
||||
workspace.options.maxBlocks = 3;
|
||||
assertEquals('Three capacity.', 1, workspace.remainingCapacity());
|
||||
workspace.maxBlocks = 2;
|
||||
workspace.options.maxBlocks = 2;
|
||||
assertEquals('Two capacity.', 0, workspace.remainingCapacity());
|
||||
workspace.maxBlocks = 1;
|
||||
workspace.options.maxBlocks = 1;
|
||||
assertEquals('One capacity.', -1, workspace.remainingCapacity());
|
||||
workspace.maxBlocks = 0;
|
||||
workspace.options.maxBlocks = 0;
|
||||
assertEquals('Zero capacity.', -2, workspace.remainingCapacity());
|
||||
workspace.clear();
|
||||
assertEquals('Cleared capacity.', 0, workspace.remainingCapacity());
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
'use strict';
|
||||
// Depending on the URL argument, render as LTR or RTL.
|
||||
var rtl = (document.location.search == '?rtl');
|
||||
var block = null;
|
||||
var workspace = null;
|
||||
|
||||
function enableRealtimeSpecificUi() {
|
||||
var realtimeDiv = document.getElementById('realtime');
|
||||
@@ -55,7 +55,7 @@ function enableRealtimeSpecificUi() {
|
||||
|
||||
function start() {
|
||||
var toolbox = document.getElementById('toolbox');
|
||||
Blockly.inject(document.getElementById('blocklyDiv'),
|
||||
workspace = Blockly.inject('blocklyDiv',
|
||||
{rtl: rtl,
|
||||
media: '../media/',
|
||||
toolbox: toolbox,
|
||||
@@ -82,7 +82,7 @@ function start() {
|
||||
|
||||
function toXml() {
|
||||
var output = document.getElementById('importExport');
|
||||
var xml = Blockly.Xml.workspaceToDom(Blockly.mainWorkspace);
|
||||
var xml = Blockly.Xml.workspaceToDom(workspace);
|
||||
output.value = Blockly.Xml.domToPrettyText(xml);
|
||||
output.focus();
|
||||
output.select();
|
||||
@@ -91,12 +91,12 @@ function toXml() {
|
||||
function fromXml() {
|
||||
var input = document.getElementById('importExport');
|
||||
var xml = Blockly.Xml.textToDom(input.value);
|
||||
Blockly.Xml.domToWorkspace(Blockly.mainWorkspace, xml);
|
||||
Blockly.Xml.domToWorkspace(workspace, xml);
|
||||
}
|
||||
|
||||
function toCode(lang) {
|
||||
var output = document.getElementById('importExport');
|
||||
output.value = Blockly[lang].workspaceToCode();
|
||||
output.value = Blockly[lang].workspaceToCode(workspace);
|
||||
}
|
||||
|
||||
function airstrike(n) {
|
||||
@@ -108,7 +108,7 @@ function airstrike(n) {
|
||||
}
|
||||
for (var i = 0; i < n; i++) {
|
||||
var prototype = prototypes[Math.floor(Math.random() * prototypes.length)];
|
||||
var block = Blockly.Block.obtain(Blockly.mainWorkspace, prototype);
|
||||
var block = Blockly.Block.obtain(workspace, prototype);
|
||||
block.initSvg();
|
||||
block.getSvgRoot().setAttribute('transform', 'translate(' +
|
||||
Math.round(Math.random() * 450 + 40) + ', ' +
|
||||
@@ -126,7 +126,7 @@ function spaghetti(n) {
|
||||
xml = '<xml xmlns="http://www.w3.org/1999/xhtml">' + xml + '</xml>';
|
||||
var dom = Blockly.Xml.textToDom(xml);
|
||||
console.time('Spaghetti domToWorkspace');
|
||||
Blockly.Xml.domToWorkspace(Blockly.mainWorkspace, dom);
|
||||
Blockly.Xml.domToWorkspace(workspace, dom);
|
||||
console.timeEnd('Spaghetti domToWorkspace');
|
||||
}
|
||||
var spaghettiXml = [
|
||||
@@ -418,7 +418,7 @@ h1 {
|
||||
|
||||
<h1>Blockly Playground</h1>
|
||||
|
||||
<p><a href="javascript:void([document.getElementById('blocklyDiv').style.display = 'block', Blockly.mainWorkspace.render()])">Show</a>
|
||||
<p><a href="javascript:void([document.getElementById('blocklyDiv').style.display = 'block', workspace.render()])">Show</a>
|
||||
- <a href="javascript:void(document.getElementById('blocklyDiv').style.display = 'none')">Hide</a></p>
|
||||
|
||||
<script>
|
||||
|
||||
Reference in New Issue
Block a user