Um campo de caixa de seleção armazena uma string como seu valor e uma string como seu texto. O
valor é 'TRUE'
ou 'FALSE'
, e o texto é 'true'
ou
'false'
.
Campo "Caixa de seleção"
Campo de caixa de seleção no bloco recolhido
com base em trends
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 aceita um valor e um validator opcionais. O valor opcional precisa 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 é assim:
{
"fields": {
"FIELDNAME": true
}
}
Em que FIELDNAME
é uma string que se refere a um campo da caixa de seleção e o valor é o valor a ser aplicado ao campo. O valor precisa ser booleano.
XML
O XML de um campo de caixa de seleção é assim:
<field name="FIELDNAME">TRUE</field>
ou
<field name="FIELDNAME">true</field>
Em que o atributo name
contém uma string que se refere a um campo da 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, depois de desserializado e serializado, todos os valores de texto
internos estarão em maiúsculas ('TRUE'
ou 'FALSE'
). Isso às vezes é importante
na diferenciação de espaços de trabalho.
Personalização
Caractere de marca de seleção
A propriedade Blockly.FieldCheckbox.CHECK_CHAR
pode ser usada para mudar a aparência da
marca de verificação. O valor precisa ser uma string contendo um caractere Unicode.
A propriedade CHECK_CHAR
padrão é "\u2713" ou ✓.
Essa é uma propriedade global, portanto, modificará todos os campos da caixa de seleção quando definidos.
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 aceitar esses valores (ou seja, uma string) e retornar 'TRUE'
, 'FALSE'
, null
ou undefined
.
Confira o exemplo de um validador que oculta ou mostra um campo de entrada de texto com base na caixa de seleção 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');
}
}