É 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.