Stan blokowania

Instancje bloków mają kilka właściwości, które konfigurują ich działanie w stosunku do użytkownika. Można je ustawić w definicji bloku, ale częściej służą do ograniczania bloków w obszarze roboczym, aby odzwierciedlały określone właściwości domeny (np. istnieje dokładnie 1 wydarzenie „start”) lub skupiały uwagę użytkownika (np. samouczek).

Stan usuwania

block.setDeletable(false);

Jeśli zasada ma wartość false, użytkownik nie może usunąć blokady. Bloki domyślnie można usuwać w edytowalnym obszarze roboczym.

Każdy blok (nawet ten, którego nie można usunąć) można usunąć programowo:

block.dispose();

Stan edycji

block.setEditable(false);

Jeśli ta opcja jest ustawiona na false, użytkownik nie będzie mógł zmieniać pól bloku (np. menu i pól tekstowych). W obszarze roboczym, który można edytować, bloki są domyślnie edytowalne.

Stan przenoszenia

block.setMovable(false);

Jeśli ta opcja jest ustawiona na false, użytkownik nie będzie mógł bezpośrednio przesuwać bloku. Bloku, którego nie można przenieść i który jest elementem podrzędnym innego bloku, nie można odłączyć od tego bloku, ale będzie się on przesuwać wraz z elementem nadrzędnym, jeśli ten zostanie przeniesiony. Bloki są domyślnie ruchome w edytowalnym obszarze roboczym.

Każdy blok (nawet ten, którego nie można przenieść) można przenieść programowo, gdy znajduje się w obszarze roboczym.

block.moveBy(dx, dy)

Pozycja początkowa bloku w przestrzeni roboczej jest domyślnie ustawiona na (0, 0).

Blokowanie danych

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

Dane to opcjonalny i dowolny ciąg znaków dołączony do bloku. Gdy blok jest serializowany, serializowany jest też ciąg danych. Dotyczy to sytuacji, gdy blok zostanie zduplikowany lub skopiowany i wklejony.

Często służy to do powiązania bloku z zasobem zewnętrznym.

Po serializacji do formatu JSON dane są przechowywane jako właściwość najwyższego poziomu w bloku:

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

Gdy ciąg danych jest serializowany do formatu XML (stary system serializacji iceboxed), jest przechowywany w bloku w tagu <data></data>:

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