Puede asignar valores en el servidor para propiedades
locales en los objetos
parentNodeLayout y
parentLinkLayout de un
nodo o enlace:
Propiedad | Descripción |
---|---|
<nombre de propiedad local del cliente> | Nombre de la seudopropiedad del nodo o enlace definida por las funciones de obtención y establecimiento en la clase de diseño en el cliente correspondiente. Se pueden especificar todas las propiedades locales de tipo number, boolean, point y rectangle. |
En este ejemplo se establecen valores para cuatro
propiedades locales con un diseño
hierarchical:
"parentNodeLayout":{ "linkStyle": 1, "linkPriority": 123, "fromPortIndex": 3, "toPortIndex": 5 },
En este ejemplo, las funciones getLinkStyle y setLinkStyle de la clase
HierarchicalLayout
se corresponden con el nombre de la propiedad local
linkStyle.
En el gráfico publicado en el servidor, los objetos
parentNodeLayout y
parentLinkLayout pueden
estar en cualquier nodo o enlace de un gráfico o subgráfico donde
haya nodeLayout y
linkLayout. La ausencia
de los objetos
parentNodeLayout y
parentLinkLayout para un
nodo o enlace determinado indica que no hay ningún diseño de nodos
local o propiedad de diseño de enlaces para este nodo o enlace.
Propiedades de los nodos
Propiedad | Descripción |
---|---|
id | Identificador exclusivo del nodo. Se utiliza cuando se crean enlaces. |
b | Recuadro delimitador del nodo, especificado como una matriz de cuatro números (coordenada x, coordenada y, anchura y altura). Los valores del recuadro delimitador se expresan en el espacio de coordenadas del padre del nodo. |
parentNodeLayout | Objeto que contiene las propiedades locales del nodo para el diseño de nodos del gráfico que contiene el nodo. Consulte Propiedades locales . |
parentLinkLayout | Objeto que contiene las propiedades locales del nodo para el diseño de enlaces del gráfico que contiene el nodo. Consulte Propiedades locales . |
Propiedades de los enlaces
Propiedad | Descripción |
---|---|
id | Identificador exclusivo del nodo. Se utiliza cuando se crean enlaces y también lo puede utilizar el cliente al actualizar su propio modelo tras ejecutar el diseño en el servidor. |
f | Desde nodo. El ID del nodo en el origen del enlace. |
t | A nodo. El ID del nodo en el destino del enlace. |
fp | Desde punto. La coordenada opcional del conector
from point , especificada como
una matriz JSON de dos números para las coordenadas x e y. Si no se
especifica, el from point se
establece utilizando el centro del nodo. La respuesta del servidor
omite esta propiedad cuando el diseño no ha movido el punto de
conexión. En este caso, el cliente debe mantener el punto de conexión
original sin modificar. |
tp | A punto. La coordenada opcional del conector
to point , especificada como
una matriz JSON de dos números para las coordenadas x e y. Si no se
especifica, el to point se
establece utilizando el centro del nodo. La respuesta del servidor
omite esta propiedad cuando el diseño no ha movido el punto de
conexión. En este caso, el cliente debe mantener el punto de conexión
original sin modificar. |
ip | Lista opcional de puntos intermedios para el enlace, especificada como una matriz de matrices de coordenadas (x,y), por ejemplo [[10,20], [30,40]]. El enlace se traza mediante los puntos especificados. La ausencia de esta propiedad significa que el enlace es una línea recta entre los nodos. |
sp | Verdadero cuando el inicio de enlace está fijado(BasicPort.isMovable devuelve true). Si no se especifica, el inicio de enlace no está fijado. |
ep | Verdadero cuando el final de enlace está fijado(BasicPort.isMovable devuelve true). Si no se especifica, el final de enlace no está fijado. |
w | Ancho del enlace. |
parentNodeLayout | Objeto que contiene las propiedades locales del enlace para el diseño de nodos del gráfico que contiene el enlace. Consulte Propiedades locales . |
parentLinkLayout | Objeto que contiene las propiedades locales del enlace para el diseño de enlaces del gráfico que contiene el enlace. Consulte Propiedades locales . |
Todos los valores de los elemento geométricos (posición
del punto y ancho) se expresan en el espacio de coordenadas del padre
del enlace.
La respuesta del servidor omite los enlaces que no haya
presentado el diseño de nodos o el diseño de enlaces. Este
comportamiento se produce cuando un punto no se ha movido, añadido o
eliminado.
Subgráficos
Todas las propiedades válidas para un nodo también son
válidas para un subgráfico. Las propiedades siguientes también son
válidas en un subgráfico:
Propiedad | Descripción |
---|---|
gb | Recuadro delimitador del gráfico dentro del subgráfico, especificado como una matriz de cuatro números (coordenada x, coordenada y, anchura y altura). Los valores del recuadro delimitador se expresan en el mismo espacio de coordenadas del padre del subgráfico. Sirven para calcular los márgenes del subgráfico. |
m | Define la matriz de transformación del espacio de coordenadas del gráfico dentro del subgráfico en el espacio de coordenadas del subgráfico. Se especifica como una matriz de seis números (xx, xy, yx, yy, dx y dy). La ausencia de esta propiedad es equivalente a especificar una matriz de identidad. |
Si un subgráfico del cliente está en el estado contraído (Subgraph.isCollapsed devuelve true), no describen los nodos y enlaces
del subgráfico. En su lugar, describe el subgráfico como si fuera un
nodo normal.
Gráficos anidados con enlaces intergráficos
Cualquier nodo puede contener un subgráfico y cualquier
pareja de nodos de cualquier gráfico o subgráfico se puede conectar.
Para enlazarlos es importante que cada nodo se pueda identificar de
forma exclusiva.
En el ejemplo siguiente se especifica un gráfico con un
subgráfico y un enlace intergráficos:
{ "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]]} ] }
El subgráfico de este ejemplo se define como un nodo con
un recuadro delimitador. Hay un enlace intergráficos que va de un
nodo del subgráfico a otro nodo del gráfico padre. El código de
servidor no necesita ninguna estructura de denominación, siempre y
cuando todos los nodos, de todos los subgráficos, tengan ID
exclusivos. Si se encuentra un ID duplicado, el diseño del gráfico
falla.
La descripción JSON de un enlace intergráficos que
empieza o acaba en un nodo dentro de un subgráfico contraído finaliza
mientras su otro extremo se encuentra en un gráfico que no está
contraído debe utilizar el nodo del extremo visible en lugar del nodo
del extremo original. El nodo del extremo visible es el padre más
cercano del nodo del extremo que no está en un estado contraído.