Modo de Layout (LL)
The figure Modos de links curto e longo com links ortogonais shows a small
sample graph in short and long link modes. The short link mode bundles
the links well. Devido à inclusão no pacote configurável, alguns links vermelhos parecem
estar desconectados dos nós verdes. O algoritmo não pode localizar uma rota
para os links vermelhos longos sem sobrepor alguns nós ou sem sobrepor
o link verde. O modo de link longo funciona em uma grade. Ele é especializado
para links longos e evita a sobreposição de quaisquer segmentos de nós ou de links.
Ele pode conectar-se aos nós verdes escolhendo pontos de conexão
nos diferentes lados dos nós de extremidade. No entanto, esta vantagem é penalizada
por uma estrutura menos regular que não inclui no pacote configurável os links e
um número maior de cruzamentos de links.

Modos de links curto e longo com links ortogonais
Escolhendo o Layout Apropriado (LL)
The short link mode must be used if any of the following
conditions apply:
- Most links are short and it is not fatal if long links overlap obstacles.
- As rotas do link devem ser posicionadas livremente e não podem ser restritas a uma grade.
- É importante limitar o número de curvaturas.
The long link mode must be used if any of the following
conditions apply:
- Muitos links são longos e é importante que os links longos não sobreponham obstáculos.
- Há um roteamento preferencial porque os nós já estão posicionados na grade.
- É importante ter uma distância mínima garantida entre segmentos de links.
- Um número aumentado de curvaturas é aceitável se ele evitar qualquer sobreposição.
Roteamento de labirinto com o layout de link longo mostra como
o modo de link longo pode ser usado para localizar uma rota ortogonal sem nenhuma
sobreposição em um labirinto dos obstáculos do nó.

Roteamento de labirinto com o layout de link longo
Estilo de Link (LL)
Os algoritmos de layout fornecem dois estilos de links. You can
set the link style globally, in which case all links have the same
shape, or locally on each link, in which case different link shapes
occur in the same drawing.
Estilo de Link Global
Exemplo de Configuração do Estilo de Link Global (algoritmos de Layout de Link)
Para configurar o estilo de link global:
Use o método setGlobalLinkStyle:
layout.setGlobalLinkStyle(ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE);
É possível usar ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.ORTHOGONAL_STYLE,
dependendo do layout com o qual você trabalha. Os valores das duas constantes
são iguais.
Os valores válidos são:
- ibm_ilog.graphlayout.shortlink. ShortLinkLayout.ORTHOGONAL_STYLE ou ibm_ilog.graphlayout.longlink. LongLinkLayout.ORTHOGONAL_STYLE (o padrão)Os links são redimensionados em uma forma ortogonal (alternando segmentos horizontais e verticais). Consulte Layout de Link Curto com Links Ortogonais e Layout de link longo com links ortogonais como exemplos.
- ibm_ilog.graphlayout.shortlink. ShortLinkLayout.DIRECT_STYLE ou ibm_ilog.graphlayout.longlink. LongLinkLayout.DIRECT_STYLEThe links are reshaped to a polygonal line composed of three segments: a straight-line segment that starts and ends with a small horizontal or vertical segment. Consulte O mesmo gráfico no layout de link curto com links diretos como um exemplo.
- ibm_ilog.graphlayout.shortlink. ShortLinkLayout.MIXED_STYLE ou ibm_ilog.graphlayout.longlink. LongLinkLayout.MIXED_STYLECada link pode ter um estilo de link diferente. O estilo de cada link individual pode ser configurado para ter formas de links diferentes ocorrendo no mesmo gráfico.
Estilo de Link Individual
Todos os links possuem o mesmo estilo de forma, a menos que o estilo de
link global seja MIXED_STYLE.
Apenas quando o
estilo de link global estiver configurado como MIXED_STYLE,
cada link poderá ter um estilo de link individual.

Diferentes estilos de links combinados no mesmo desenho (layout
de link curto)

Diferentes estilos de links combinados no mesmo desenho (layout
de link longo)
Exemplo de Especificação do Estilo de Link Individual (algoritmos
de Layout de Link)
Para configurar e recuperar o estilo de um link individual:
Use os métodos:
layout.setLinkStyle(link, ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE);
var style = layout.getLinkStyle(node);
Os valores válidos são:
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.ORTHOGONAL_STYLE (o padrão)
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.DIRECT_STYLE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.DIRECT_STYLE
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.NO_RESHAPE_STYLE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.NO_RESHAPE_STYLE (ou seja, o link não é redimensionado de maneira alguma)
Modo de Terminais (LL)
O algoritmo de layout fornece dois modos de terminais. É possível
configurar o modo de terminal globalmente, neste caso, todos os terminais
terão o mesmo modo, ou localmente em cada link, neste caso, ocorrem diferentes
modos de terminais no mesmo desenho.
Modo de Terminal Global
Exemplo de Especificação de Modo Global e de Terminal (Algoritmo de Layout
de Link)
Para configurar o modo de terminal global:
Use os métodos setGlobalOriginPointMode e setGlobalDestinationPointMode.
Os valores válidos para determinar o modo são:
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FREE_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.FREE_MODE (o padrão)O layout é livre para escolher a posição apropriada do ponto de conexão no nó de origem ou de destino.
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FIXED_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.FIXED_MODEO layout deve manter a posição atual do ponto de conexão no nó de origem ou de destino.
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.MIXED_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.MIXED_MODECada link pode ter um modo de terminal diferente.
Modo de Terminal Individual
Todos os links possuem o mesmo modo de terminal, a menos que o modo de terminal global
seja MIXED_MODE.
Apenas quando o modo de terminal global estiver configurado como MIXED_MODE,
cada link poderá ter um modo de terminal individual.
Exemplo de Especificação do Modo de Terminal Individual (Algoritmo
de Layout de Link)
Para configurar o modo de um link individual:
Use os métodos:
layout.setOriginPointMode(link, mode)
var mode = getOriginPointMode(link)
layout.setDestinationPointMode(link, mode)
var mode = getDestinationPointMode(link)
Os valores válidos para mode são:
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FREE_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.FREE_MODE (o padrão)
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FIXED_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.FIXED_MODE
Modo Incremental (LL)
O algoritmo de Layout de Link normalmente roteia todos os links a
partir do início. If the graph changes incrementally because you add or remove
links or nodes, the subsequent layout can differ considerably from
the previous layout. Para evitar este efeito e ajudar o usuário a manter
um mapa mental do gráfico, o algoritmo possui um modo incremental.
Exemplo de Ativação do Modo Incremental (Algoritmo de Layout de Link)
Para ativar o modo incremental:
Use o método setIncrementalMode:
layout.setIncrementalMode(true);
No modo incremental, o layout tenta minimizar as mudanças
no layout. A link is only rerouted if it is new, if a
link bend has moved, if its layout parameters have changed, or if
a node was moved such that it overlaps the link.
No modo de link curto, se o próximo layout for incremental,
os links preservarão o lado da conexão e a forma geral calculada
por um layout anterior, exceto se um de seus nós de extremidade tiver sido movido
ou redimensionado.
No modo de link longo, é buscada uma nova rota para os links
que não estão mais na grade ou que se sobrepõem com nós. A forma
e o lado da conexão dos links roteados novamente podem ser completamente alterados.
Os links que já estão na grade e não sobrepõem nós ou outros
links não são roteados novamente no modo incremental. Também é possível especificar
qual link deve ser roteado novamente pelo próximo layout incremental,
mesmo que o layout não tenha sido alterado.
Exemplo de Especificação de Qual Link Deve Ser Roteado Novamente pelo
Próximo Layout Incremental (algoritmo de Layout de Link)
Para selecionar um link individual para ser usado para um novo roteamento incremental:
Use o método:
layout.markForIncremental(link)
Roteamento de Links entre Gráficos (LL)

Gráfico aninhado com links normais (azuis) e
links entre gráficos (vermelhos)
Por padrão, o Layout de Link roteia os links normais
e os links entre gráficos.
Exemplo de Roteamento apenas de Links Normais (algoritmo de Layout de Link)
Para rotear apenas links normais, desative o roteamento de links entre gráficos:
Use o método setInterGraphLinksMode:
layout.setInterGraphLinksMode(false);
Exemplo de Roteamento de Links entre Gráficos ou Normais ou Ambos
(algoritmo de Layout de Link)
Se o modo de links entre gráficos estiver ativado, será possível selecionar
se apenas os links entre gráficos serão roteados ou se os
links entre gráficos e os links normais serão roteados ao mesmo tempo.
Configure o método setCombinedInterGraphLinksMode
para que o próximo layout roteie os links entre gráficos, mas não redimensione
nenhum dos links normais:
layout.setCombinedInterGraphLinksMode(false);
Configure o método setCombinedInterGraphLinksMode
para que o próximo layout roteie os links normais e os
links entre gráficos:
layout.setCombinedInterGraphLinksMode(true);
Quando o modo de links entre gráficos estiver ativado, o layout
não poderá rotear os links incrementalmente. Consulte o Modo Incremental (LL).
O layout roteia apenas os links que pertencem ao
gráfico anexado. Em um gráfico aninhado, cada subgráfico é anexado a uma
instância de layout diferente. Portanto, ao iniciar um layout normal (não recursivo)
para o gráfico de nível superior (consulte Gráfico aninhado com links normais (azuis) e
links entre gráficos (vermelhos)), nem todos os
links mostrados nesta figura serão roteados, mas apenas os links
que pertencem ao gráfico de nível superior.
Na figura a seguir, o sombreamento amarelo indica o subgráfico
ao qual o layout de link não recursivo é aplicado.
O gráfico de nível superior está à esquerda e à direita está o subgráfico,
que é amarelo sombreado. Se o modo de links entre gráficos estiver ativado,
os links vermelhos (entre gráficos) e azuis (normais) serão roteados. Se o modo de
links entre gráficos estiver desativado, apenas os links azuis (normais) serão roteados. The
gray links are not routed because they do not belong to the graph
to which the link layout is applied.

Links roteados em um gráfico aninhado: gráfico de nível superior e,
em seguida, subgráfico
Para rotear todos os links de um gráfico aninhado:
- Use o mecanismo de herança padrão que também aplica o layout de link especificado no gráfico de nível superior aos subgráficos.ou
- Especifique um layout de link explicitamente em cada subgráfico.