Eventos de Diagrama Adicionais

Para cada evento padrão publicado pela estrutura Dijit, o widget Diagram publica dois eventos adicionais que ocorrem em associação com o nó e o link em que o evento ocorre. Por exemplo, o evento padrão do Dijit onMouseDown(e) está associado a dois outros eventos do widget Diagram:
  • onLinkMouseDown(link,e)
  • onNodeMouseDown(node,e)
Esses eventos são acionados quando o evento ocorre dentro dos limites de um link ou nó e os manipuladores de evento recebem esse elemento como o primeiro parâmetro.
Há uma opção para conectar-se a cada nó ou link usando a API de conexão GFX. Por exemplo, se precisar connect ao evento onmousedown de todos os nós, será possível estabelecer uma única conexão com onNodeMouseDown no widget Diagram.
Por exemplo, o código a seguir gera um alerta quando o ponteiro entra em um nó:
dojo.connect(D,"onNodeMouseEnter",function(node,e) {
   alert("entered!);               
});
Evento do Dijit Evento associado em um nó Evento associado em um link
onContextMenu onNodeContextMenu onLinkContextMenu
onClick onNodeClick onLinkClick
onDblClick onNodeDblClick onLinkDblClick
onMouseUp onNodeMouseUp onLinkMouseUp
onMouseDown onNodeMouseDown onLinkMouseDown
onMouseMove onNodeMouseMove onLinkMouseMove
onMouseEnter onNodeMouseEnter onLinkMouseEnter
onMouseLeave onNodeMouseLeave onLinkMouseLeave
onMouseOver onNodeMouseOver onLinkMouseOver
onMouseOut onNodeMouseOut onLinkMouseOut
Sempre que a seleção for alterada, haverá um evento de notificação e o método onSelectionChanged([added],[removed]) será chamado. Por esse método, é possível chamar qualquer função customizada. Na extração de código a seguir, o widget Diagram é centralizado no elemento selecionado:
dojo.connect(Diagram.getSelection(),"onSelectionChanged",this,function(added,removed){
                if(centerOnNode) {
                    if(added.length==1) {
                        Diagram.centerOnNode(added[0],true);
                    }
                }
            });
Os eventos de notificação adicionais estão disponíveis para edição do diagrama:
  • beforeGraphElementDispose(graphElement): este evento ocorre antes de um elemento do gráfico ser descartado
  • afterGraphElementDispose(graphElement): este evento ocorre após o descarte de um elemento do gráfico