Schablonen über das Programm verwenden

Wenn Sie einen Knoten über das Programm erstellen möchten, verwenden Sie die Methode ibm_ilog.diagram.Graph.createNode(). Ist kein Argument angegeben, erstellt die Methode createNode eine Instanz von ibm_ilog.diagram.Node und initialisiert diese mit der Standardknotenschablone (einer rechteckigen Form und einer Textform).
Wenn Sie eine angepasste grafische Darstellung spezifizieren möchten, akzeptiert die Methode Graph.createNode einen Parameter template, der eine Zeichenfolge oder eine einfache JavaScript-Objekteigenschaft sein muss, die der GFX-Serialisierungsspezifikation entspricht. Beispiel:
var graph = ...
var template = ibm_ilog.diagram.declareTemplate({ shape: {type:'rect'}, fill: 'blue'});
var node = graph.createNode(template);
Hinweis
In diesem Beispiel sind die Schablonenparameter als Zeichenfolgen definiert. Die optionale Funktion "ibm_ilog.diagram.declareTemplate()" verarbeitet die Schablone für die Schablonierungsengine, was die Leistung verbessert. Ein Beispiel für die Definition von Schablonenparametern als JavaScript-Objekteigenschaften finden Sie im Abschnitt Bindungen.
Wenn Sie Schablonen dynamisch ändern möchten, verwenden Sie die Methode node.applyTemplate(). Auf diese Weise können Sie die grafische Darstellung derselben Knoteninstanz ändern und die Link-Port-Einstellungen beibehalten. Beispiel:
var graph = ...
var template = ibm_ilog.diagram.declareTemplate({ shape: {type:'rect'}, fill: 'blue'});
var node = graph.createNode(template);
// ...
// later, the template is changed for a new one
node.applyTemplate({ shape: {type:'ellipse'}, fill: 'red'});
Wenn eine Unterkomponente über die Knoteninstanz referenziert wird, d. h., wenn die Knoteninstanz eine direkte Referenz auf eine ihrer untergeordneten Komponenten definiert, kann die Schablone die Unterkomponente mit der Eigenschaft dojoAttachPoint markieren. Der Wert dieser Eigenschaft ist der Eigenschaftsname der Referenz, die in der Knoteninstanz definiert ist. Beispiel:
[{
   dojoAttachPoint: 'baseShape',
   shape: {
       type: 'rect',
       ...
   }
   ...
}, {
   dojoAttachPoint: 'textShape',
   shape: {
       type: 'text',
       ...
   }
   ...
}]
Wenn Sie diese Schablone verwenden, wird für jeden Eintrag dojoAttachPoint in der Schablone eine neue Eigenschaft in der Knoteninstanz definiert, die für die entsprechende Form gilt. Nach der Anwendung der Schablone greifen Sie über die Eigenschaft node.baseShape auf die rechteckige Form und über die Eigenschaft node.textShape auf die Textform zu.