Definición de la estructura de gráfico

Además de la propiedad nodesStore, también es necesario especificar las relaciones entre los elementos del origen de datos. Hay dos tipos de relaciones: jerárquicas y explícitas.
Para definir las relaciones jerárquicas y explícitas entre los nodos utilice metadatos en nodesStore. Para definir las relaciones explícitas entre los nodos utilice metadatos en linksStore.
La diferencia clave entre las relaciones jerárquicas y explícitas es el modo en que se representan. La representación de las relaciones jerárquicas se basa en el valor del atributo createLinksForHierarchy. Si es true, las relaciones jerárquicas se representan como enlaces. Si es false, las relaciones jerárquicas se representan como una serie de subgráficos anidados. Las relaciones explícitas siempre se representan como enlaces.

Definición de enlaces utilizando relaciones jerárquicas

Para definir enlaces utilizando relaciones jerárquicas:
Por ejemplo, el archivo de datos siguiente define una jerarquía de trabajadores:
{ 
  "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" 
      } 
      ... 
] }
En este ejemplo se define un almacén de datos de dojo.data.api.ItemFileReadStore que carga el archivo de datos como en el código siguiente:
<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>
Cuando se establece el atributo childBinding del widget Diagram en children, el nodo que corresponde a la propiedad de nombre está enlazado con todos los nodos que representan el elemento de datos al que se hace referencia en la matriz de hijos.

Definición de enlaces utilizando relaciones explícitas

Para describir las relaciones jerárquicas entre los nodos a partir de la información de nodesStore:
Para describir las relaciones jerárquicas entre los nodos a partir de la información de linksStore:

Definición de relaciones nodesStore más complejas

Puede que no sea posible determinar relaciones más complejas mediante una búsqueda de atributos nodesStore sencilla o puede que no desee especificar de forma declarativa el nombre del atributo.
Para definir relaciones nodesStore complejas:
  • Utilice los atributos childBinding, parentBinding, successorsBinding y predecessorsBinding. Estos atributos pueden hacer referencia a una función.
    En el ejemplo siguiente se muestra cómo la búsqueda de hijos se puede conseguir utilizando la función findChildren.
    var findStartItem = function(linksStore, linkStoreItem, nodesStore) {
            return linksStore.getValue(linkStoreItem, "start");
    };