Usando Listeners de Eventos

Todas as classes de layout suportam dois tipos de eventos: eventos de layout e eventos de parâmetro. Portanto, o mecanismo de atendimento fornece:

Listener de eventos de layout

O mecanismo de atendimento de eventos de layout fornece uma maneira de informar o usuário sobre o que está acontecendo durante o layout. Às vezes, um algoritmo de layout pode levar muito tempo para executar, especialmente quando se está lidando com gráficos grandes. Além disso, um algoritmo pode não convergir em alguns casos. Não importa a situação, o usuário deve ser informado dos eventos que ocorrem durante o layout.
Isso pode ser feito pela exibição das informações adequadas, como a porcentagem de conclusão após cada iteração ou etapa.
Para receber eventos de layout entregues durante o layout, você deve conectar-se (usando dojo.connect) ao método on <Event> apropriado.
Os seguintes eventos são acionados:
  1. onLayoutStepPerformed(layoutStarted, layoutFinished): Um evento executado por uma etapa de layout indica quando uma etapa na execução do layout de gráfico é executada. Também indica quando o layout é concluído ou parado.
  2. onAttached(): Este evento é acionado quando o layout de gráfico é anexado a um modelo de layout de gráfico. Um layout de gráfico deve ser anexado a um modelo de layout de gráfico para ser executado.
  3. onDetached(): Este evento é acionado quando o layout de gráfico é desanexado de um modelo de layout de gráfico.
Para atender a eventos do layout de gráfico, você deve implementar uma função de listener e conectá-la (usando dojo.connect) ao método apropriado da instância de layout de gráfico.
Consulte o Usando um Relatório de Layout de Gráfico. Desta forma, é possível ler informações sobre o estado atual do relatório de layout. (Por exemplo, é possível ler estas informações após cada iteração ou etapa do algoritmo de layout).
O exemplo a seguir mostra como implementar e conectar um listener de eventos de layout:
dojo.connect(layout, "onLayoutStepPerformed", function(layoutStarted, layoutFinished){
 console.log("started = " + layoutStarted + " finished = " + layoutFinished);
 console.log("percentage of completion: " + layout.getLayoutReport().getPercentageComplete());
});

Listeners de Eventos de Parâmetro

O mecanismo de listeners de eventos de parâmetro de layout fornece uma maneira de informar o usuário que algum parâmetro de layout foi alterado.
Para receber os eventos de parâmetro de layout, você deve implementar uma função de listener e registrá-la conectando-se ao evento onParameterChanged.
Os seguintes eventos podem ser recebidos:
  1. ibm_ilog.graphlayout.GraphLayout.onObjectParameterChanged(nodeOrLink, parameterName): Este evento é acionado sempre que um parâmetro de layout local (ou seja, um parâmetro que se aplica a um nó ou link específico) é alterado.
  2. ibm_ilog.graphlayout.GraphLayout.onParameterChanged(parameterName): Este evento é acionado sempre que um parâmetro de layout global é alterado.
O exemplo a seguir mostra como implementar um listener de eventos de parâmetro de layout.
 dojo.connect(layout, "onParameterChanged", function(parameterName){
  console.log("parameter " + parameterName + " has changed");
 });