Definindo a Estrutura do Gráfico

Além da propriedade nodesStore, também é necessário especificar as relações entre os itens na origem de dados. Existem dois tipos de relacionamento: hierárquico e explícito.
Para definir relacionamentos hierárquicos e explícitos entre nós, use metadados no nodesStore. Para definir relacionamentos explícitos entre nós, use metadados no linksStore.
A principal diferença entre hierárquico e explícito é a maneira que eles são representados. A representação de relacionamentos hierárquicos é baseada no valor do atributo createLinksForHierarchy. Se true, os relacionamentos hierárquicos serão representados como links. Se false, os relacionamentos hierárquicos serão representados como uma série de subgráficos aninhados. Relacionamentos explícitos são sempre representados como links.

Definindo Links Usando Relacionamentos Hierárquicos

Para definir links usando relacionamentos hierárquicos:
Por exemplo, o seguinte arquivo de dados define uma hierarquia de funcionários:
{ 
  "identifier":"Name", 
  "label":"Name", 
  "items":[ 
      { "children":[ 
          {"_reference":"Hermann Bacchus"}, 
          {"_reference":"Marion Daignan"}, 
          {"_reference":"Margaret Brinkmeier"}, 
          {"_reference":"Peter Courcelle"} 
        ], 
        "Name":"Friedrich Azaretto", 
        "EMail":"fazaretto@my.com" 
      } 
      ... 
] }
Nesse exemplo, você define um armazenamento de dados dojo.data.api.ItemFileReadStore que carrega o arquivo de dados como na marcação a seguir:
<div dojoType="dojo.data.ItemFileReadStore" url="./mycompany.json" jsId="graphModel" ></div>
   <div id="canvas" dojoType='ibm_ilog.diagram.widget.Diagram' style="width:900px;height:700px" nodesStore="graphModel" childBinding="children" nodesQuery="{Name:'*'}" ></div>
Ao configurar o atributo childBinding do widget Diagram como children, o nó que corresponde à propriedade de nome está vinculado a todos os nós que representam o item de dados referido na matriz de filhos.

Definindo Links Usando Relacionamentos Explícitos

Para descrever relacionamentos hierárquicos entre nós a partir das informações no nodesStore:
Para descrever relacionamentos hierárquicos entre nós a partir das informações no linksStore:

Definindo Relacionamentos nodesStore mais Complexos

Pode não ser possível determinar relacionamentos mais complexos por uma simples consulta do atributo nodesStore ou pode não ser recomendável especificar declaradamente o nome do atributo.
Para definir relacionamentos complexos nodesStore:
  • Use os atributos childBinding, parentBinding, successorsBinding e predecessorsBinding. Estes atributos podem referir-se a uma função.
    O exemplo a seguir mostra como a consulta de filhos pode ser obtida usando a função findChildren.
    var findStartItem = function(linksStore, linkStoreItem, nodesStore) {
            return linksStore.getValue(linkStoreItem, "start");
    };