Blockierungsstatus

Blockinstanzen haben eine Reihe von Eigenschaften, mit denen konfiguriert wird, wie sie sich gegenüber dem Nutzer verhalten. Diese können zwar in der Blockdefinition festgelegt werden, werden aber häufiger verwendet, um Blöcke im Arbeitsbereich einzuschränken, damit sie bestimmte Eigenschaften der Domain widerspiegeln (z.B. genau ein „Start“-Ereignis) oder die Bemühungen des Nutzers zu fokussieren (z.B. ein Tutorial).

Löschbarer Status

block.setDeletable(false);

Wenn false festgelegt ist, kann der Nutzer die Blockierung nicht löschen. Blöcke können in einem bearbeitbaren Arbeitsbereich standardmäßig gelöscht werden.

Jeder Block, auch nicht löschbare, kann programmatisch gelöscht werden:

block.dispose();

Bearbeitungsstatus

block.setEditable(false);

Wenn der Wert auf false festgelegt ist, kann der Nutzer die Felder des Blocks nicht ändern, z.B. Drop-down-Menüs und Texteingaben. Blöcke sind in einem bearbeitbaren Arbeitsbereich standardmäßig bearbeitbar.

Status „Movable“

block.setMovable(false);

Wenn diese Option auf false gesetzt ist, kann der Nutzer den Block nicht direkt verschieben. Ein unbeweglicher Block, der ein untergeordneter Block eines anderen Blocks ist, kann nicht von diesem Block getrennt werden. Er wird jedoch mit seinem übergeordneten Block verschoben, wenn dieser verschoben wird. Blöcke sind in einem bearbeitbaren Arbeitsbereich standardmäßig verschiebbar.

Jeder Block (auch unbewegliche) kann programmatisch verschoben werden, sobald er sich in einem Arbeitsbereich befindet.

block.moveBy(dx, dy)

Die Startposition für einen Block in einem Arbeitsbereich ist standardmäßig (0, 0).

Daten blockieren

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

„Data“ ist ein optionaler und beliebiger String, der an den Block angehängt wird. Wenn der Block serialisiert wird, wird auch der Datenstring serialisiert. Das gilt auch, wenn der Block dupliziert oder kopiert und eingefügt wird.

Häufig wird damit ein Block mit einer externen Ressource verknüpft.

Bei der Serialisierung in JSON werden die Daten als Eigenschaft der obersten Ebene im Block gespeichert:

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

Wenn der Datenstring in XML serialisiert wird (das alte System), wird er in einem <data></data>-Tag innerhalb des Blocks gespeichert:

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