Merge pull request #357 from rachel-fenichel/feature/field_number_js

Add lightweight field_number
This commit is contained in:
rachel-fenichel
2016-05-05 12:32:01 -07:00
5 changed files with 51 additions and 2 deletions

View File

@@ -71,7 +71,7 @@ Blockly.Blocks['controls_repeat'] = {
"message0": Blockly.Msg.CONTROLS_REPEAT_TITLE,
"args0": [
{
"type": "field_input",
"type": "field_number",
"name": "TIMES",
"text": "10"
}

View File

@@ -43,7 +43,7 @@ Blockly.Blocks['math_number'] = {
this.setHelpUrl(Blockly.Msg.MATH_NUMBER_HELPURL);
this.setColour(Blockly.Blocks.math.HUE);
this.appendDummyInput()
.appendField(new Blockly.FieldTextInput('0',
.appendField(new Blockly.FieldNumber('0',
Blockly.FieldTextInput.numberValidator), 'NUM');
this.setOutput(true, 'Number');
// Assign 'this' to a variable for use in the tooltip closure below.

View File

@@ -1082,6 +1082,9 @@ Blockly.Block.prototype.interpolate_ = function(message, args, lastDummyAlign) {
field = new Blockly.FieldImage(element['src'],
element['width'], element['height'], element['alt']);
break;
case 'field_number':
field = new Blockly.FieldNumber(element['text']);
break;
case 'field_date':
if (Blockly.FieldDate) {
field = new Blockly.FieldDate(element['date']);

View File

@@ -38,6 +38,7 @@ goog.require('Blockly.FieldColour');
goog.require('Blockly.FieldDropdown');
goog.require('Blockly.FieldImage');
goog.require('Blockly.FieldTextInput');
goog.require('Blockly.FieldNumber');
goog.require('Blockly.FieldVariable');
goog.require('Blockly.Generator');
goog.require('Blockly.Msg');

45
core/field_number.js Normal file
View File

@@ -0,0 +1,45 @@
/**
* @license
* Visual Blocks Editor
*
* Copyright 2016 Google Inc.
* https://developers.google.com/blockly/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Number input field
* @author fenichel@google.com (Rachel Fenichel)
*/
'use strict';
goog.provide('Blockly.FieldNumber');
goog.require('Blockly.FieldTextInput');
/**
* Class for an editable number field.
* @param {string} text The initial content of the field.
* @param {Function=} opt_validator An optional function that is called
* to validate any constraints on what the user entered. Takes the new
* text as an argument and returns either the accepted text, a replacement
* text, or null to abort the change.
* @extends {Blockly.FieldTextInput}
* @constructor
*/
Blockly.FieldNumber = function(text, opt_validator) {
Blockly.FieldNumber.superClass_.constructor.call(this, text,
opt_validator);
};
goog.inherits(Blockly.FieldNumber, Blockly.FieldTextInput);