Propriedades Locais

É possível designar valores no lado do servidor para propriedades locais nos objetos parentNodeLayout e parentLinkLayout de um nó ou link:
Propriedade Descrição
<nome da propriedade local do lado do cliente> O nome da pseudopropriedade do nó ou link definido pelas funções getter e setter na classe de layout do lado do cliente correspondente. Todas as propriedades locais de tipo número, booleano, ponto e retângulo podem ser especificadas.
Este exemplo configura valores para quatro propriedades locais com uma propriedade hierarchical:
"parentNodeLayout":{
                  "linkStyle": 1,
                  "linkPriority": 123,
                  "fromPortIndex": 3,
                  "toPortIndex": 5
},
Neste exemplo, as funções getLinkStyle e setLinkStyle da classe HierarchicalLayout correspondem ao nome da propriedade local linkStyle.
No gráfico postado no servidor, os objetos parentNodeLayout e parentLinkLayout podem estar presentes em qualquer nó ou link em um gráfico ou subgráfico em que nodeLayout e linkLayout estejam presentes. A ausência dos objetos parentNodeLayout e parentLinkLayout para um determinado nó ou link indica que não há nenhuma propriedade do layout de nó ou do layout de link local para este nó ou link.

Propriedades do nó

Propriedade Descrição
id Um identificador exclusivo para o nó. Usado ao criar links.
b Caixa delimitadora para o nó, especificada como uma matriz de quatro números (coordenada x, coordenada y, largura e altura). Os valores para a caixa delimitadora são expressos no espaço de coordenadas do pai do nó.
parentNodeLayout Um objeto que contém propriedades locais do nó para o layout de nó do gráfico que contém o nó. Consulte o Propriedades Locais.
parentLinkLayout Um objeto que contém propriedades locais do nó para o layout de link do gráfico que contém o nó. Consulte o Propriedades Locais.

Propriedades de link

Propriedade Descrição
id Um identificador exclusivo para o nó. Usado ao criar links, e pelo cliente ao atualizar seu modelo após o layout do lado do servidor.
f Nó de origem. O valor de ID do nó na origem do link.
t Nó de destino. O valor de ID do nó no destino do link.
fp Ponto de origem. The optional coordinate of the from point connector, specified as a JSON array of two numbers for the x and y coordinates. If not specified, the from point is set using the center of the node. A resposta do servidor omite esta propriedade quando o layout não tiver movido o ponto de conexão. Neste caso, o cliente deve manter o ponto de conexão original não modificado.
tp Ponto de origem. The optional coordinate of the to point connector, specified as a JSON array of two numbers for the x and y coordinates. If not specified, the to point is set using the center of the node. A resposta do servidor omite esta propriedade quando o layout não tiver movido o ponto de conexão. Neste caso, o cliente deve manter o ponto de conexão original não modificado.
ip Uma lista opcional de pontos intermediários para o link, especificados como uma matriz de matrizes de coordenadas (x,y), por exemplo, [[10,20], [30,40]]. O link é desenhado por meio dos pontos especificados. A ausência desta propriedade significa que o link é uma linha reta entre os nós.
sp True quando o início do link é retido(BasicPort.isMovable retorna true). Se não especificado, o início do link não será retido.
ep True quando o final do link é retido (BasicPort.isMovable retorna true). Se não especificado, o final do link não será retido.
w Largura do link.
parentNodeLayout Um objeto que contém propriedades locais do link para o layout de nó do gráfico que contém o link. Consulte o Propriedades Locais.
parentLinkLayout Um objeto que contém propriedades locais do link para o layout de link do gráfico que contém o link. Consulte o Propriedades Locais.
Todos os valores para elementos de geometria (posição e largura de pontos) são expressos no espaço de coordenadas do pai do link.
A resposta do servidor omite qualquer link que a execução do layout não tenha organizado pelo layout de nó ou layout de link. This behavior occurs when a point has not been moved, added, or removed.

Subgráficos

Todas as propriedades válidas para um nó também são válidas para um subgráfico. As seguintes propriedades também são válidas em um subgráfico:
Propriedade Descrição
gb Caixa delimitadora do gráfico dentro do subgráfico, especificada como uma matriz de quatro números (coordenada x, coordenada y, largura e altura). The values for the bounding box are expressed in the same coordinate space as the parent of the subgraph. They serve to compute the margins of the subgraph.
m Define a matriz de transformação do espaço de coordenadas do gráfico dentro do subgráfico para o espaço de coordenadas do subgráfico. É especificada como uma matriz de seis números (xx, xy, yx, yy, dx e dy). A ausência desta propriedade é equivalente à especificação de uma matriz de identidade.
Se um subgráfico do lado do cliente estiver no estado reduzido (Subgraph.isCollapsed retorna true), não descreva os nós e links do subgráfico. Em vez disso, descreva o subgráfico como se ele fosse um nó regular.

Gráficos Aninhados com Links entre Gráficos

Qualquer nó pode conter um subgráfico, e quaisquer dois nós em qualquer gráfico ou subgráfico podem ser vinculados. To link them, it is important that every node is uniquely identifiable.
The following example specifies a graph with a subgraph and an intergraph link:
{
"nodeLayout": {"algorithm":"forcedirected"},
"nodes":[
   {"id":"object1", "b":[120, 400, 20, 20]},
   {"id":"object2", "b":[170, 400, 20, 20]},
   {
      "id":"subgraph1", 
      "b":[500,300,200,200],
      "gb":[510,310,180,180],
      "m":[1,0,0,1,12,30],
      "nodeLayout": {"algorithm":"forcedirected"},
      "nodes":[
         {"id":"subgraph1/object1", "b":[0, 0, 20, 20]},
         {"id":"subgraph1/object2", "b":[100, 120, 20, 20]}
      ],
      "links":[
         {"id":"igLink", "f":"subgraph1/object1", "t":"object2"}
      ]
   }
],

"links":[
   {"id":"myLink", "f":"object1", "t":"object2", "ip":[[20,20],[40,20],[40,40]]}
]
}
O subgráfico neste exemplo é definido como um nó com uma caixa delimitadora. Há um link entre gráficos de um nó no subgráfico para um no gráfico-pai. Nenhuma estrutura de nomenclatura é necessária para o código do servidor, desde que todos os nós, em todos os subgráficos, tenham IDs exclusivos. Se for localizado um ID duplicado, o layout de gráfico falhará.
A descrição de JSON de um link entre gráficos que inicia ou termina em um nó dentro de um subgráfico reduzido enquanto sua outra extremidade está em um gráfico não reduzido deve usar o nó de extremidade visível em vez do nó de extremidade original. O nó de extremidade visível é o pai mais próximo do nó de extremidade que não está em um estado reduzido.