Canvas related events
In some cases, it’s crucial to react to canvas state changes.
HTMLGraph provides a simple event model for this purpose.
To subscribe to events, use the subscribe
method of an EventHandler
instance.
When the listener is no longer needed, unsubscribe by calling unsubscribe
with the same callback.
Node events
canvas.graph.onAfterNodeAdded.subscribe((nodeId) => { console.log('new node has just been added'); console.log(canvas.graph.getNode(nodeId)); });
canvas.graph.onAfterNodeUpdated.subscribe((nodeId) => { console.log('node has just been updated'); console.log(canvas.graph.getNode(nodeId)); });
canvas.graph.onAfterNodePriorityUpdated.subscribe((nodeId) => { console.log('node z-index has just been changed'); console.log(canvas.graph.getNode(nodeId).priority); });
canvas.graph.onBeforeNodeRemoved.subscribe((nodeId) => { console.log('node is about to be removed'); console.log(canvas.graph.getNode(nodeId)); });
Port events
canvas.graph.onAfterPortMarked.subscribe((portId) => { console.log('new port has just been marked'); console.log(canvas.graph.getPort(portId)); });
canvas.graph.onAfterPortUpdated.subscribe((portId) => { console.log('port has just been updated'); console.log(canvas.graph.getPort(portId)); });
canvas.graph.onBeforePortUnmarked.subscribe((portId) => { console.log('port is about to be unmarked'); console.log(canvas.graph.getPort(portId)); });
Edge events
canvas.graph.onAfterEdgeAdded.subscribe((edgeId) => { console.log('new edge has just been added'); console.log(canvas.graph.getEdge(edgeId)); });
canvas.graph.onAfterEdgeUpdated.subscribe((edgeId) => { console.log('edge has just been updated'); console.log(canvas.graph.getEdge(edgeId)); });
canvas.graph.onAfterEdgePriorityUpdated.subscribe((edgeId) => { console.log('edge z-index has just been changed'); console.log(canvas.graph.getEdge(edgeId).priority); });
canvas.graph.onBeforeEdgeRemoved.subscribe((edgeId) => { console.log('edge is about to be removed'); console.log(canvas.graph.getEdge(edgeId)); });
Viewport events
canvas.viewport.onBeforeUpdated.subscribe(() => { console.log('viewport state is about to be updated'); console.log(canvas.viewport.getViewportMatrix()); });
canvas.viewport.onAfterUpdated.subscribe(() => { console.log('viewport state has just been updated'); console.log(canvas.viewport.getViewportMatrix()); });
Other events
canvas.onBeforeDestroy.subscribe(() => { console.log('canvas is about to be destroyed'); });