Um campo de caixa de seleção armazena uma string como seu valor e uma string como seu texto. Seu
o valor é 'TRUE'
ou 'FALSE'
, e o texto é 'true'
ou
'false'
.
Campo de caixa de seleção
Campo de caixa de seleção no bloco recolhido
Criação
JSON
{
"type": "example_checkbox",
"message0": "checkbox: %1",
"args0": [
{
"type": "field_checkbox",
"name": "FIELDNAME",
"checked": true
}
]
}
JavaScript
Blockly.Blocks['example_checkbox'] = {
init: function() {
this.appendDummyInput()
.appendField('checkbox:')
.appendField(new Blockly.FieldCheckbox(true), 'FIELDNAME');
}
};
O construtor da caixa de seleção recebe um valor opcional e um
validador da solicitação. O valor opcional deve ser
'TRUE'
, 'FALSE'
ou um booleano. Caso contrário, o padrão será false
.
Serialização
JSON
O JSON de um campo de caixa de seleção tem esta aparência:
{
"fields": {
"FIELDNAME": true
}
}
Em que FIELDNAME
é uma string que faz referência a um campo de caixa de seleção e
o valor é o valor a ser aplicado ao campo. O valor precisa ser booleano.
XML
O XML para um campo de caixa de seleção tem esta aparência:
<field name="FIELDNAME">TRUE</field>
ou
<field name="FIELDNAME">true</field>
Em que o atributo name
contém uma string que faz referência a um campo de caixa de seleção
e o texto interno é o valor a ser aplicado ao campo. O valor do texto interno
segue as mesmas regras do valor do construtor.
Observe que, após ser desserializado e reserializado, todo o texto interno
os valores serão em letras maiúsculas ('TRUE'
ou 'FALSE'
). Às vezes, isso é importante
ao diferenciar espaços de trabalho.
Personalização
Caractere de marca de seleção
A propriedade Blockly.FieldCheckbox.CHECK_CHAR
pode ser usada para mudar o que o
marca de seleção. O valor precisa ser uma string que contenha um unicode
caractere.
O padrão da propriedade CHECK_CHAR
é "\u2713" ou ✓.
Essa é uma propriedade global, portanto, ela modificará todos os campos das caixas de seleção quando definidas.
Como criar um validador de caixas de seleção
O valor de um campo de caixa de seleção é 'TRUE'
ou 'FALSE'
. Portanto, um validador precisa
aceitam esses valores (ou seja, uma string) e retornam 'TRUE'
, 'FALSE'
, null
ou
undefined
.
Confira um exemplo de validador que oculta ou mostra um campo de entrada de texto com base em se a caixa de seleção está marcada:
validate: function(newValue) {
var sourceBlock = this.getSourceBlock();
sourceBlock.showTextField_ = newValue == 'TRUE';
sourceBlock.updateTextField();
return newValue;
},
updateTextField: function() {
var input = this.getInput('DUMMY');
if (this.showTextField_ && !this.getField('TEXT')) {
input.appendField(new Blockly.FieldTextInput(), 'TEXT');
} else if (!this.showTextField_ && this.getField('TEXT')) {
input.removeField('TEXT');
}
}