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:
- 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.
- 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.
- 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:
- 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.
- 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"); });