Canvas State Events
HTMLGraph offers a basic event system to handle changes in the canvas state.
Events can be subscribed to via the subscribe method provided by the EventHandler instance.
Once the listener is no longer necessary, simply call unsubscribe with the same callback to remove it.
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.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');
});