Parâmetros Específicos do GL

Parâmetro de Ordem (GL)

O parâmetro de ordem especifica como organizar os nós.
Exemplo de Especificação de Iterações de Posicionamento de Nós e Tempo Permitido (algoritmo GL)
Para especificar a opção de ordenação para os nós:
Use o método:
gridLayout.setNodeComparator(ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_HEIGHT); 
O parâmetro de ordem especifica como organizar os nós.
Os valores válidos para comparator são:
  • ibm_ilog.graphlayout.grid.GridLayout.AUTOMATIC_ORDERING
    O algoritmo é livre para escolher a ordem de uma forma que ele tenta reduzir a área total ocupada pelo layout.
  • ibm_ilog.graphlayout.grid.GridLayout.NO_ORDERING
    Nenhuma ordenação é executada.
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_HEIGHT
    Os nós são ordenados em ordem decrescente a partir de sua altura.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_HEIGHT
    Os nós são ordenados em ordem crescente a partir de sua altura.
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_WIDTH
    Os nós são ordenados em ordem decrescente a partir de sua largura.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_WIDTH
    Os nós são ordenados em ordem crescente a partir de sua largura.
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_AREA
    Os nós são ordenados em ordem decrescente a partir de sua área.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_AREA
    Os nós são ordenados em ordem crescente a partir de sua área.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_INDEX
    Os nós são ordenados em ordem crescente a partir de seu índice (consultesetIndex).
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_INDEX
    Os nós são ordenados em ordem decrescente a partir de seu índice (consulte setIndex).
  • null
    Os nós são ordenados de maneira arbitrária.
  • Qualquer objeto com uma propriedade compare cujo valor deve ser uma função.
    Os nós são ordenados de acordo com este comparador customizado.
  • A função compare deve ter a seguinte assinatura:
    compareFunction (A, B)
    A função de comparação compara dois argumentos. Por exemplo: Especificados dois elementos A e B, compareFunction retorna um dos seguintes valores:
    • -1
      A função retorna A antes de B na sequência classificada.
    • 0
      A é igual a B.
    • 1
      A função retorna A depois de B na sequência classificada.
O padrão é ibm_ilog.graphlayout.grid.GridLayout.AUTOMATIC_ORDERING.
In incremental mode (see setIncrementalMode) e com nós fixos (consulte setFixed), a ordem dos nós não é totalmente preservada.
If the layout mode is TILE_TO_GRID_FIXED_WIDTH ou TILE_TO_GRID_FIXED_HEIGHT, as opções de ordem serão aplicadas apenas aos nós cujo tamanho (incluindo margens) é menor que o tamanho de célula da grade (consulte setHorizontalGridOffset e setVerticalGridOffset).

Modos de Layout (GL)

O algoritmo de Layout da Grade possui quatro modos de layout.
Exemplo de Seleção de um Modo de Layout (algoritmo GL)
Para selecionar um modo de layout:
Use o método:
gridLayout.setLayoutMode(ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_HEIGHT);  
Os valores válidos para mode são:
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_WIDTH (o padrão).
    Os nós são posicionados nas células de uma grade (matriz) que possui um número máximo fixo de colunas. Este número é igual à largura do parâmetro da região de layout dividido pelo deslocamento da grade horizontal.
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_HEIGHT
    Os nós são posicionados nas células de uma grade (matriz) que possui um número máximo fixo de linhas. Este número é igual à altura do parâmetro da região de layout dividido pelo deslocamento da grade vertical.
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_ROWS
    Os nós são posicionados em linhas. A largura máxima das linhas é igual à largura do parâmetro da região de layout. A altura da linha é a altura máxima dos nós contidos na linha (além das margens).
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_COLUMNS
    Os nós são posicionados em colunas. A altura máxima das colunas é igual à altura do parâmetro da região de layout. A largura da coluna é a largura máxima dos nós contidos na coluna (além das margens).

Parâmetros de Alinhamento (GL)

Parâmetros de Alinhamento Global

As opções de alinhamento controlam como um nó é posicionado sobre sua célula da grade ou sobre sua linha ou coluna (dependendo do modo de layout). O alinhamento pode ser configurado globalmente, neste caso, todos os nós são alinhados da mesma maneira, ou localmente em cada nó, com o resultado de que ocorrem alinhamentos diferentes no mesmo desenho.
Exemplo de Configuração de Alinhamento Global (algoritmo GL)
Para configurar o alinhamento global:
Use os seguintes métodos:
gridLayout.setGlobalHorizontalAlignment(ibm_ilog.graphlayout.grid.GridLayout.LEFT);
gridLayout.setGlobalVerticalAlignment(ibm_ilog.graphlayout.grid.GridLayout.TOP);
Os valores válidos para o parâmetro de alinhamento são:
  • ibm_ilog.graphlayout.grid.GridLayout.CENTER (o padrão)
    The node is horizontally and vertically centered over its grid cell or row or column.
  • ibm_ilog.graphlayout.grid.GridLayout.TOP
    The node is vertically aligned on the top of its cell or row. Não usado se o modo de layout for TILE_TO_COLUMNS.
  • ibm_ilog.graphlayout.grid.GridLayout.BOTTOM
    The node is vertically aligned on the bottom of its grid cell or row. Não usado se o modo de layout for TILE_TO_COLUMNS.
  • ibm_ilog.graphlayout.grid.GridLayout.LEFT
    The node is horizontally aligned on the left of its grid cell or column. Não usado se o modo de layout for TILE_TO_ROWS.
  • ibm_ilog.graphlayout.grid.GridLayout.RIGHT
    The node is horizontally aligned on the right of its grid cell or column. Não usado se o modo de layout for TILE_TO_ROWS.
  • ibm_ilog.graphlayout.grid.GridLayout.MIXED
    Cada nó pode ter um alinhamento diferente. O alinhamento de cada nó individual pode ser configurado com o resultado de que podem ocorrer alinhamentos diferentes no mesmo gráfico.

Alinhamento de Nós Individuais

Todos os nós possuem o mesmo alinhamento, a menos que o alinhamento global esteja configurado como ibm_ilog.graphlayout.grid.GridLayout.MIXED. Apenas quando o alinhamento global estiver configurado como combinado, cada nó poderá ter um estilo de alinhamento individual.
Exemplo de Configuração de Alinhamento de Nós Individuais (algoritmo GL)
Para configurar e recuperar o alinhamento de um nó individual:
Use os seguintes métodos:
setHorizontalAlignment(node, alignment);  
setVerticalAlignment(node, alignment);   
getHorizontalAlignment(node);   
getVerticalAlignment(node);   
Os valores válidos para o parâmetro de alinhamento são:
  • ibm_ilog.graphlayout.grid.GridLayout.CENTER (o padrão)
  • ibm_ilog.graphlayout.grid.GridLayout.TOP
  • ibm_ilog.graphlayout.grid.GridLayout.BOTTOM
  • ibm_ilog.graphlayout.grid.GridLayout.LEFT
  • ibm_ilog.graphlayout.grid.GridLayout.RIGHT

Número Máximo de Nós por Linha ou Coluna (GL)

Por padrão, no modo ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_ROWS ou ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_COLUMNS, o layout posiciona a quantidade possível de nós em cada linha ou coluna, especificado o tamanho dos nós e os parâmetros dimensionais (região de layout e margens). Se necessário, o layout pode respeitar adicionalmente um número máximo especificado de nós por linha ou coluna.
Exemplo de Especificação do Número Máximo de Nós por Linha ou Coluna (algoritmo GL)
Para configurar o número máximo de nós por linha ou coluna:
Use o método:
gridLayout.setMaxNumberOfNodesPerRowOrColumn(5);  
O valor padrão é int.MAX_VALUE, ou seja, o número de nós posicionados em cada linha ou coluna é limitado apenas pelo tamanho dos nós e dos parâmetros dimensionais. O valor especificado deve ser de pelo menos 1. O parâmetro não terá efeito se o modo de layout for ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_WIDTH ou ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_HEIGHT.

Modo Incremental (GL)

O algoritmo de Layout de Grade normalmente posiciona todos os nós a partir do início. If the graph incrementally changes because you add, remove, or resize 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. No modo incremental, o layout tenta posicionar os nós no mesmo local ou na mesma ordem que o layout anterior sempre que possível.
Exemplo de Ativação do Modo Incremental (algoritmo GL)
Para ativar o modo incremental:
Chame o método setIncrementalMode da seguinte forma:
gridLayout.setIncrementalMode(true); 
Nota
Para preservar a estabilidade, o modo incremental pode manter algumas regiões livres. Therefore, the total area of the layout can be larger than in nonincremental mode, and, in general, the layout cannot look as nice as in nonincremental mode.

Parâmetros Dimensionais (GL)

Parâmetros dimensionais para o modo de grade do algoritmo de Layout de Grade e Parâmetros dimensionais para o modo de linha e coluna do algoritmo de Layout de Grade ilustram os parâmetros dimensionais usados no algoritmo de Layout de Grade. Estes parâmetros são explicados nas seções seguintes.
Diagrama
que ilustra os parâmetros da margem e do deslocamento de grade do Layout de Grade em modo de grade
Parâmetros dimensionais para o modo de grade do algoritmo de Layout de Grade
Diagrama
que ilustra os parâmetros de margem e região de layout do Layout de Grade em modo de linha e coluna
Parâmetros dimensionais para o modo de linha e coluna do algoritmo de Layout de Grade

Deslocamento de Grade (GL)

Os parâmetros de deslocamento da grade controlam o espaçamento entre linhas de grade. Ele é considerado apenas pelo modo de grade (modos de layout TILE_TO_GRID_FIXED_WIDTH e TILE_TO_GRID_FIXED_HEIGHT).
Exemplo de Configuração do Deslocamento da Grade (algoritmo GL)
Para configurar o deslocamento da grade horizontal e vertical:
Use os métodos:
gridLayout.setHorizontalGridOffset(50);
gridLayout.setVerticalGridOffset(50);  
O deslocamento da grade é o parâmetro crítico para o modo de grade. Se o deslocamento da grade for maior que o tamanho dos nós (além das margens), será deixado um espaço vazio ao redor do nó. Se o deslocamento da grade for menor que o tamanho dos nós (mais as margens), o nó deve ser colocado em mais de uma célula de grade. A melhor opção para os deslocamentos da grade depende do aplicativo. Ele pode ser calculado de acordo com o tamanho máximo dos nós (além das margens) ou o tamanho médio, e assim por diante. If all the nodes have a similar size, the choice is straightforward.

Margens (GL)

As margens controlam o espaço ao redor de cada nó que o algoritmo de layout mantém vazio.
Exemplo de Especificação de Margens (algoritmo GL)
Para configurar as margens:
Use os métodos:
gridLayout.setTopMargin(10);
gridLayout.setBottomMargin(10);
gridLayout.setLeftMargin(5);
gridLayout.setRightMargin(5);  
O significado dos parâmetros de margens não é o mesmo para os modos de grade e para os modos de linha/coluna:
O valor padrão para todos os parâmetros de margens é 5.