Einführung in Schablonen

Eine Schablone definiert die grafische Darstellung eines Knotens oder eines Links mithilfe einer Zeichenfolge oder einer Objektbeschreibung des Knoten- bzw. Linkinhalts. Die Beschreibung basiert auf der dojox.gfx-Serialisierungsspezifikation (siehe http://docs.dojocampus.org/dojox/gfx). Dieser Mechanismus wird als Schablonierung bezeichnet.
In der Dojo-Diagrammer-Terminologie ist eine Schablone eine Beschreibung der grafischen Darstellung eines Knotens oder eines Links. Sie wird als JSON-Zeichenfolge ausgedrückt, kann aber auch ein einfaches JavaScript-Objekt sein.
Die folgende Schablone zeigt einen Knoten als blaue rechteckige Basisform an. Sie definiert die grafische Form als GFX-Form "Rect" (angegeben mit der Typeigenschaft "rect") mit einer Größe von 130x80 Pixel und der Vollfüllfarbe blau:
1. {
2.  shape: {
3.   type:'rect',
4.   width:130,
5.   height:80
6.  },
7.  fill: 'blue'
8.}
Die Position der rechteckigen Form ist nicht angegeben und wird deshalb auf den Standardwert (0,0) gesetzt.
Damit ein Knoten mehrere Formen enthalten kann, muss die Schablone einen Ausgangsarray definieren, der untergeordnete Formen enthält.
Die folgende Schablone zeigt eine rechteckige Form an, die mit einer Textform gekoppelt ist.
1.[
2.{
3.   shape: {
4.        x: 0,
5.        y: 0,
6.        width: 80,
7.        height: 40,
8.        r: 5,
9.        type: 'rect'
10.    },
11.    fill: 'blue',
12.    stroke: {
13.        'color': 'black',
14.        'width': 2
15.    }
16.}, 
17.{
18.    shape: {
19.        type: 'text',
20.        text: 'Hello World!',
21.        x: 40,
22.        y: 24,
23.        align: 'middle'
24.    },
25.    fill: 'black',
26.    font: {
27.        type: 'font',
28.        size: '10pt',
29.        family: 'sans-serif'
30.    }
31.}
32.]
Die erste Form, definiert in den Zeilen 2 bis 16, ist dieselbe rechteckige Form wie im vorherigen Beispiel, enthält allerdings einen zusätzlichen angepassten Strich (stroke) in Zeile 12. Die zweite Form, definiert in den Zeilen 17 bis 31, ist eine GFX-Form "text", die die Beschriftung "Hello World!" anzeigt.