Estado de bloqueio

As instâncias de bloco têm várias propriedades que configuram o comportamento delas para o usuário. Embora possam ser definidos na definição do bloco, eles são mais usados para restringir blocos no espaço de trabalho e refletir determinadas propriedades do domínio (por exemplo, há exatamente um evento "iniciar") ou concentrar o esforço do usuário (por exemplo, um tutorial).

Estado de exclusão

block.setDeletable(false);

Quando definido como false, o usuário não poderá excluir o bloqueio. Os blocos são excluíveis por padrão em um espaço de trabalho editável.

Qualquer bloco, mesmo os que não podem ser excluídos, pode ser excluído de forma programática:

block.dispose();

Estado editável

block.setEditable(false);

Quando definido como false, o usuário não poderá mudar os campos do bloco (por exemplo, menus suspensos e entradas de texto). Os blocos são editáveis por padrão em um espaço de trabalho editável.

Estado móvel

block.setMovable(false);

Quando definido como false, o usuário não pode mover o bloco diretamente. Um bloco fixo filho de outro bloco não pode ser desconectado dele, mas se move com o pai quando ele é movido. Os blocos são móveis por padrão em um espaço de trabalho editável.

Qualquer bloco (mesmo os imóveis) pode ser movido de forma programática depois que estiver em um espaço de trabalho.

block.moveBy(dx, dy)

A posição inicial de um bloco em um espaço de trabalho é (0, 0) por padrão.

Bloquear dados

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

Os dados são uma string opcional e arbitrária anexada ao bloco. Quando o bloco é serializado, a string de dados também é. Isso inclui quando o bloco é duplicado ou copiado/colado.

Muitas vezes, isso é usado para associar um bloco a um recurso externo.

Quando serializados em JSON, os dados são armazenados como uma propriedade de nível superior no bloco:

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

Quando serializada para XML (o antigo sistema de serialização iceboxed), a string de dados é armazenada em uma tag <data></data> dentro do bloco:

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