Stato blocco

Le istanze di blocco hanno una serie di proprietà che configurano il loro comportamento per l'utente. Anche se possono essere impostati nella definizione del blocco, vengono utilizzati più comunemente per vincolare i blocchi nello spazio di lavoro in modo che riflettano determinate proprietà del dominio (ad es. esiste esattamente un evento "start") o per concentrare l'impegno dell'utente (ad es. un tutorial).

Stato eliminabile

block.setDeletable(false);

Se impostato su false, l'utente non potrà eliminare il blocco. I blocchi vengono eliminati per impostazione predefinita in uno spazio di lavoro modificabile.

Qualsiasi blocco (anche quelli non eliminabili) può essere eliminato a livello di programmazione:

block.dispose();

Stato modificabile

block.setEditable(false);

Se impostato su false, l'utente non potrà modificare i campi del blocco (ad es. menu a discesa e input di testo). I blocchi sono modificabili per impostazione predefinita in uno spazio di lavoro modificabile.

Stato mobile

block.setMovable(false);

Se impostato su false, l'utente non potrà spostare direttamente il blocco. Un blocco inamovibile secondario di un altro blocco non può essere disconnesso da quest'ultimo, anche se si sposterà con il relativo blocco principale se quest'ultimo viene spostato. I blocchi sono spostabili per impostazione predefinita in un workspace modificabile.

Qualsiasi blocco (anche quelli non spostabili) può essere spostato a livello di programmazione una volta che si trova in un workspace.

block.moveBy(dx, dy)

La posizione iniziale di un blocco in uno spazio di lavoro è impostata per impostazione predefinita su (0, 0).

Blocca dati

block.data = '16dcb3a4-bd39-11e4-8dfc-aa07a5b093db';

I dati sono una stringa facoltativa e arbitraria allegata al blocco. Quando il blocco viene serializzato, viene serializzata anche la stringa di dati. Ciò include i casi in cui il blocco viene duplicato o copiato/incollato.

Spesso viene utilizzato per associare un blocco a una risorsa esterna.

Quando vengono serializzati in JSON, i dati vengono archiviati come proprietà di primo livello nel blocco:

{
  "type": "my_block",
  "data": "16dcb3a4-bd39-11e4-8dfc-aa07a5b093db",
  // etc..
}

Quando viene serializzata in XML (il vecchio sistema di serializzazione iceboxed), la stringa di dati viene memorizzata in un tag <data></data> all'interno del blocco:

<block type="my_block">
  <data>16dcb3a4-bd39-11e4-8dfc-aa07a5b093db</data>
  <!-- etc... -->
</block>