class.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. 'use strict';
  2. goog.provide('Blockly.Python.class');
  3. goog.require('Blockly.Python');
  4. Blockly.Python['class_creation'] = function(block) {
  5. var class_name = Blockly.Python.variableDB_.getName(block.getFieldValue('CLASS'), Blockly.Variables.NAME_TYPE) || '___';
  6. var body = Blockly.Python.statementToCode(block, 'BODY') ||
  7. Blockly.Python.PASS;
  8. // TODO: Assemble Python into code variable.
  9. var code = 'class ' + class_name + ':\n' + body;
  10. return code;
  11. };
  12. Blockly.Blocks['attribute_access'] = {
  13. init: function() {
  14. this.appendValueInput("MODULE")
  15. .setCheck(null);
  16. this.appendValueInput("NAME")
  17. .setCheck(null)
  18. .appendField(".");
  19. this.setInputsInline(true);
  20. this.setOutput(true, null);
  21. this.setColour(230);
  22. this.setTooltip('');
  23. this.setHelpUrl('');
  24. }
  25. };
  26. Blockly.Python['attribute_access'] = function(block) {
  27. var value_module = Blockly.Python.valueToCode(block, 'MODULE', Blockly.Python.ORDER_MEMBER);
  28. var value_name = Blockly.Python.valueToCode(block, 'NAME', Blockly.Python.ORDER_MEMBER);
  29. // TODO: Assemble JavaScript into code variable.
  30. var code = value_module+'.'+value_name;
  31. // TODO: Change ORDER_NONE to the correct strength.
  32. return [code, Blockly.Python.ORDER_NONE];
  33. };