Usando Modelos Programaticamente

Para criar um nó programaticamente, use o método ibm_ilog.diagram.Graph.createNode(). Quando nenhum argumento for especificado, o método createNode criará uma instância ibm_ilog.diagram.Node e a inicializará com o modelo de nó padrão (uma forma retangular e uma forma de texto).
Para especificar uma representação gráfica customizada, o método Graph.createNode aceita um parâmetro template que deve ser uma sequência ou uma propriedade de objeto JavaScript simples que está em conformidade com a especificação de serialização GFX. Por exemplo:
var graph = ...
var template = ibm_ilog.diagram.declareTemplate({ shape: {type:'rect'}, fill: 'blue'});
var node = graph.createNode(template);
Nota
Neste exemplo, os parâmetros de modelo são definidos como sequências. The optional ibm_ilog.diagram.declareTemplate() function processes the template for the templating engine, resulting in better performance. Consulte a seção Ligações para obter um exemplo que define parâmetros de modelo como propriedades de objeto JavaScript.
Para alterar modelos dinamicamente, use o método node.applyTemplate(). Desta forma, é possível alterar a representação gráfica da mesma instância do nó e manter as configurações de porta do link. Por exemplo:
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'});
Se um subcomponente for referido a partir da instância do nó, ou seja, a instância do nó define uma referência direta a um de seus filhos, o modelo poderá sinalizar o subcomponente com a propriedade dojoAttachPoint. O valor desta propriedade é o nome da propriedade da referência definida na instância do nó. Por exemplo:
[{
   dojoAttachPoint: 'baseShape',
   shape: {
       type: 'rect',
       ...
   }
   ...
}, {
   dojoAttachPoint: 'textShape',
   shape: {
       type: 'text',
       ...
   }
   ...
}]
Se você usar este modelo, uma nova propriedade será configurada na instância do nó para cada entrada dojoAttachPoint no modelo e se aplicará à forma correspondente. Depois de aplicar o modelo, você acessará a forma retangular por meio da propriedade node.baseShape e a forma de texto por meio da propriedade node.textShape.