mirror of
https://github.com/google/blockly.git
synced 2026-01-07 00:50:27 +01:00
Merge pull request #768 from rachel-fenichel/feature/block_factory_helpurl
Update block factory to make setting colour, helpurl, and tooltip easier
This commit is contained in:
@@ -52,6 +52,12 @@ Blockly.Blocks['factory_base'] = {
|
||||
});
|
||||
this.appendDummyInput()
|
||||
.appendField(dropdown, 'CONNECTIONS');
|
||||
this.appendValueInput('TOOLTIP')
|
||||
.setCheck('String')
|
||||
.appendField('tooltip');
|
||||
this.appendValueInput('HELPURL')
|
||||
.setCheck('String')
|
||||
.appendField('help url');
|
||||
this.appendValueInput('COLOUR')
|
||||
.setCheck('Colour')
|
||||
.appendField('colour');
|
||||
|
||||
@@ -65,7 +65,18 @@ BlockFactory.oldDir = null;
|
||||
* unmovable, undeletable factory_base block.
|
||||
*/
|
||||
BlockFactory.STARTER_BLOCK_XML_TEXT = '<xml><block type="factory_base" ' +
|
||||
'deletable="false" movable="false"></block></xml>';
|
||||
'deletable="false" movable="false">' +
|
||||
'<value name="TOOLTIP">' +
|
||||
'<block type="text" deletable="false" movable="false">' +
|
||||
'<field name="TEXT"></field></block></value>' +
|
||||
'<value name="HELPURL">' +
|
||||
'<block type="text" deletable="false" movable="false">' +
|
||||
'<field name="TEXT"></field></block></value>' +
|
||||
'<value name="COLOUR">' +
|
||||
'<block type="colour_hue">' +
|
||||
'<mutation colour="#5b67a5"></mutation>' +
|
||||
'<field name="HUE">230</field>' +
|
||||
'</block></value></block></xml>';
|
||||
|
||||
/**
|
||||
* Change the language code format.
|
||||
|
||||
@@ -250,8 +250,10 @@ FactoryUtils.formatJson_ = function(blockType, rootBlock) {
|
||||
var hue = parseInt(colourBlock.getFieldValue('HUE'), 10);
|
||||
JS.colour = hue;
|
||||
}
|
||||
JS.tooltip = '';
|
||||
JS.helpUrl = 'http://www.example.com/';
|
||||
|
||||
JS.tooltip = FactoryUtils.getTooltipFromRootBlock_(rootBlock);
|
||||
JS.helpUrl = FactoryUtils.getHelpUrlFromRootBlock_(rootBlock);
|
||||
|
||||
return JSON.stringify(JS, null, ' ');
|
||||
};
|
||||
|
||||
@@ -334,8 +336,11 @@ FactoryUtils.formatJavaScript_ = function(blockType, rootBlock, workspace) {
|
||||
code.push(' this.setColour(' + hue + ');');
|
||||
}
|
||||
}
|
||||
code.push(" this.setTooltip('');");
|
||||
code.push(" this.setHelpUrl('http://www.example.com/');");
|
||||
|
||||
var tooltip = FactoryUtils.getTooltipFromRootBlock_(rootBlock);
|
||||
var helpUrl = FactoryUtils.getHelpUrlFromRootBlock_(rootBlock);
|
||||
code.push(" this.setTooltip('" + tooltip + "');");
|
||||
code.push(" this.setHelpUrl('" + helpUrl + "');");
|
||||
code.push(' }');
|
||||
code.push('};');
|
||||
return code.join('\n');
|
||||
@@ -951,3 +956,31 @@ FactoryUtils.savedBlockChanges = function(blockLibraryController) {
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
/**
|
||||
* Given the root block of the factory, return the tooltip specified by the user
|
||||
* or the empty string if no tooltip is found.
|
||||
* @param {!Blockly.Block} rootBlock Factory_base block.
|
||||
* @return {string} The tooltip for the generated block, or the empty string.
|
||||
*/
|
||||
FactoryUtils.getTooltipFromRootBlock_ = function(rootBlock) {
|
||||
var tooltipBlock = rootBlock.getInputTargetBlock('TOOLTIP');
|
||||
if (tooltipBlock && !tooltipBlock.disabled) {
|
||||
return tooltipBlock.getFieldValue('TEXT');
|
||||
}
|
||||
return '';
|
||||
};
|
||||
|
||||
/**
|
||||
* Given the root block of the factory, return the help url specified by the
|
||||
* user or the empty string if no tooltip is found.
|
||||
* @param {!Blockly.Block} rootBlock Factory_base block.
|
||||
* @return {string} The help url for the generated block, or the empty string.
|
||||
*/
|
||||
FactoryUtils.getHelpUrlFromRootBlock_ = function(rootBlock) {
|
||||
var helpUrlBlock = rootBlock.getInputTargetBlock('HELPURL');
|
||||
if (helpUrlBlock && !helpUrlBlock.disabled) {
|
||||
return helpUrlBlock.getFieldValue('TEXT');
|
||||
}
|
||||
return '';
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user