Campi delle etichette serializzabili

Le etichette serializzabili funzionano esattamente come le etichette normali, tranne per il fatto che vengono anche serializzate in XML. Devono essere utilizzati solo se modifichi i contenuti di un'etichetta in modo programmatico e vuoi che vengano serializzati in XML.

Campo dell'etichetta serializzabile

Un blocco con l'etichetta serializzabile "un'etichetta serializzabile". Visivamente, non è diverso da un blocco con un'etichetta normale.

Campo etichetta serializzabile in un blocco compresso

Lo stesso blocco dopo essere stato compresso. Ha l'etichetta "un'etichetta serializzabile"
e un bordo destro frastagliato per indicare che è chiusa.

Creazione

JSON

{
  "type": "example_serializable_label",
  "message0": "%1",
  "args0": [
    {
      "type": "field_label_serializable",
      "name": "FIELDNAME",
      "text": "a serializable label"
    }
  ]
}

JavaScript

Blockly.Blocks['example_serializable_label'] = {
  init: function() {
    this.appendDummyInput()
        .appendField(new Blockly.FieldLabelSerializable("a serializable label"), "FIELDNAME");
  }
};

Il campo dell'etichetta serializzabile accetta un valore facoltativo e una stringa di classe CSS facoltativa. Per entrambi il valore predefinito è una stringa vuota.

Serializzazione

JSON

Il JSON per un campo etichetta serializzabile è il seguente:

{
  "fields": {
    "FIELDNAME": text
  }
}

dove FIELDNAME è una stringa che fa riferimento a un campo etichetta serializzabile e il valore è il valore da applicare al campo. Il valore segue le stesse regole del valore del costruttore.

XML

Il codice XML di un campo dell'etichetta serializzabile è il seguente:

<field name="FIELDNAME">text</field>

L'attributo name del nodo field contiene una stringa che fa riferimento a un campo dell'etichetta serializzabile e il testo interno del nodo è il valore da applicare al campo.

Strumenti di convalida

I campi delle etichette serializzabili non supportano gli strumenti di convalida perché non sono modificabili da un utente.