Trabajar con índices de posición absoluta del nodo es un
engorro en determinadas situaciones. Por ejemplo, si dos nodos
pertenecen al mismo nivel, es posible que desee obligar a colocar un
nodo en una posición con un índice menor que el otro nodo sin fijar
las posiciones absolutas de los nodos. Esto puede conseguirse
utilizando una restricción de posición relativa.
La restricción de posición relativa obliga a colocar los
nodos de un nivel en un orden concreto, pero no especifica qué nodos
son directamente colindantes. Por ejemplo, una restricción de
posición relativa puede obligar a colocar
nodeA
en una posición inferior
a nodeB
, pero puede haber
muchos nodos entre nodeA
y
nodeB
. Llame a:
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalRelativePositionConstraint(nodeA,nodeB,priority));
Esto obliga a colocar
nodeA
en una posición inferior
a nodeB
. Si la dirección del
flujo es hacia abajo, los nodos están en niveles horizontales; por lo
tanto, la restricción significa que
nodeA
se coloca a la izquierda
de nodeB
. Si la dirección del
flujo es hacia la derecha, los nodos están en niveles verticales; por
lo tanto, la restricción significa que
nodeA
se coloca por debajo de
nodeB
. La restricción de posición relativa sólo surte efecto si
ambos nodos en realidad pertenecen al mismo nivel. Para ello puede
utilizar también, por ejemplo, una restricción de mismo nivel. No hay
ninguna manera de influir en la posición relativa de los nodos que
pertenecen a diferentes niveles.
De forma parecida a la restricción de nivel relativo, la
restricción de posición relativa se pueden aplicar a grupos de nodos.
Estas restricciones también tienen prioridades que indican las
restricciones que dominan si se produce un conflicto de
restricciones. Cuanto más alta es la prioridad, más probable es que
se satisfaga la restricción en el momento de resolver conflictos de
restricciones.