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áficoafterGraphElementDispose(graphElement)
: este suceso se produce después de descartar un elemento del gráfico