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>