Sucesos de diagrama adicionales

Por cada suceso estándar publicado por la infraestructura Dijit, el widget Diagram publica dos sucesos adicionales que se producen en asociación con el nodo o el enlace en el que se produce el suceso. Por ejemplo, el suceso onMouseDown(e) de Dijit estándar se asocia con otros dos sucesos del widget Diagram:
  • onLinkMouseDown(link,e)
  • onNodeMouseDown(node,e)
Estos sucesos se desencadenan cuando el suceso se produce dentro de los límites de un enlace o un nodo, y los manejadores de sucesos reciben este elemento como el primer parámetro.
Hay una opción para conectarse a cada nodo o enlace mediante la API de conexión GFX. Por ejemplo, si necesita conectarse (connect) al suceso onmousedown de todos los nodos, puede llevar a cabo una única conexión con onNodeMouseDown en el widget Diagram.
Por ejemplo, el código siguiente genera una alerta cuando el puntero entra en un nodo:
dojo.connect(D,"onNodeMouseEnter",function(node,e) {
   alert("entered!);               
});
Suceso de Dijit Suceso asociado en un nodo Suceso asociado en un enlace
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
Cada vez que cambia la selección, hay un suceso de notificación y se llama al método onSelectionChanged([added],[removed]). Mediante este método, puede llamar a cualquier función personalizada. En el fragmento de código siguiente, el widget Diagram se centra en el elemento seleccionado:
dojo.connect(Diagram.getSelection(),"onSelectionChanged",this,function(added,removed){
                if(centerOnNode) {
                    if(added.length==1) {
                        Diagram.centerOnNode(added[0],true);
                    }
                }
            });
Existen sucesos de notificación adicionales que permiten editar el diagrama:
  • beforeGraphElementDispose(graphElement): este suceso se produce antes de descartar un elemento del gráfico
  • afterGraphElementDispose(graphElement): este suceso se produce después de descartar un elemento del gráfico