Engelleme durumu

Blok örneklerinin, kullanıcıya nasıl davranacaklarını yapılandıran bir dizi özelliği vardır. Bunlar blok tanımında ayarlanabilse de genellikle çalışma alanındaki blokları kısıtlamak için kullanılır. Bu kısıtlamalar, alanın belirli özelliklerini yansıtmak (ör. tam olarak bir "başlangıç" etkinliği vardır) veya kullanıcının çabasını odaklamak (ör. bir eğitim) amacıyla uygulanır.

Silinebilir durum

block.setDeletable(false);

false olarak ayarlandığında kullanıcı, engeli silemez. Bloklar, düzenlenebilir bir çalışma alanında varsayılan olarak silinebilir.

Tüm bloklar (silinemeyenler dahil) programatik olarak silinebilir:

block.dispose();

Düzenlenebilir durum

block.setEditable(false);

false olarak ayarlandığında kullanıcı, bloğun alanlarını (ör. açılır listeler ve metin girişleri) değiştiremez. Bloklar, düzenlenebilir bir çalışma alanında varsayılan olarak düzenlenebilir.

Taşınabilir durum

block.setMovable(false);

false olarak ayarlandığında kullanıcı, bloğu doğrudan taşıyamaz. Başka bir blokun alt öğesi olan taşınmaz bir blok, bu bloktan ayrılmayabilir ancak üst öğesi taşınırsa alt öğesi de üst öğesiyle birlikte taşınır. Bloklar, düzenlenebilir bir çalışma alanında varsayılan olarak taşınabilir.

Çalışma alanında bulunan tüm bloklar (taşınamayanlar dahil) programatik olarak taşınabilir.

block.moveBy(dx, dy)

Çalışma alanındaki bir blok için başlangıç konumu varsayılan olarak (0, 0) olur.

Verileri engelleme

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

Veriler, bloğa eklenen isteğe bağlı ve rastgele bir dizedir. Blok seri hale getirildiğinde veri dizesi de seri hale getirilir. Bu, bloğun kopyalandığı veya yapıştırıldığı durumları da kapsar.

Bu genellikle bir bloğu harici bir kaynakla ilişkilendirmek için kullanılır.

JSON'a serileştirildiğinde veriler, blokta en üst düzey özellik olarak depolanır:

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

XML'ye (eski iceboxed serileştirme sistemi) serileştirildiğinde veri dizesi, blok içindeki bir <data></data> etiketinde depolanır:

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