Pour chaque événement standard publié par le canevas Dijit, le widget Diagram publie deux événements supplémentaires qui ont lieu en association avec le noeud ou le lien dans lequel l'événement se produit. Par exemple, l'événement
onMouseDown(e)
Dijit standard est associé à deux autres événements du widget Diagram.onLinkMouseDown(link,e)
onNodeMouseDown(node,e)
Ces événements sont déclenchés lorsque l'événement a lieu dans les limites d'un lien ou d'un noeud, et les gestionnaires d'événements reçoivent cet élément comme premier paramètre.
Il est possible de se connecter à chaque noeud ou lien à l'aide de l'API de connexion GFX. Par exemple, si vous devez exécuter une opération
connect
sur l'événement onmousedown
de tous les noeuds, vous pouvez effectuer une connexion unique à onNodeMouseDown
sur le widget Diagram.Par exemple, le code suivant génère une alerte lorsque le pointeur pénètre dans un noeud :
dojo.connect(D,"onNodeMouseEnter",function(node,e) { alert("entered!); });
Evénement Dijit | Evénement associé dans un noeud | Evénement associé dans un lien |
---|---|---|
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 |
Chaque fois que la sélection est modifiée, un événement de notification a lieu et la méthode
onSelectionChanged([added],[removed])
est appelée. Par le biais de cette méthode, vous pouvez appeler une fonction personnalisée.
Dans l'extrait de code suivant, le widget Diagram est centré sur l'élément sélectionné :dojo.connect(Diagram.getSelection(),"onSelectionChanged",this,function(added,removed){ if(centerOnNode) { if(added.length==1) { Diagram.centerOnNode(added[0],true); } } });
Des événements de notification supplémentaires sont disponibles pour édition dans le diagramme :
beforeGraphElementDispose(graphElement)
: cet événement se produit avant qu'un élément de graphe soit disposéafterGraphElementDispose(graphElement)
: cet événement se produit après qu'un élément de graphe soit disposé