Event Handling
Less than 1 minute
Event Handling
The WebCAD event system lets you listen to changes in entities, documents, commands, and more.
Online Examples
| Example | Description | Link |
|---|---|---|
| Entity Added Event | Listen to EntityAdded | Online Demo{target="_blank"} |
| Entity Modified Event | Listen to EntityModified | Online Demo{target="_blank"} |
| Selection Changed Event | Listen to SelectionChanged | Online Demo{target="_blank"} |
| Command Events | CommandStarted and CommandEnded | Online Demo{target="_blank"} |
| Document Events | DocumentOpened and DocumentSaved | Online Demo{target="_blank"} |
Core API
Listen to Events
const { Engine, CadEvents } = vjcad;
// Listen to entity-added event
Engine.eventManager.on(CadEvents.EntityAdded, (args) => {
const entity = args.entity;
console.log("Entity added:", entity.type);
});
// Listen to entity-modified event
Engine.eventManager.on(CadEvents.EntityModified, (args) => {
console.log("Entity modified:", args.entity.id);
});
// Listen to selection-changed event
Engine.eventManager.on(CadEvents.SelectionChanged, (args) => {
console.log("Selection changed:", args.entities.length);
});Cancelable Events
Some events can be intercepted and canceled before the operation is executed:
// Listen to entity-adding event (cancelable)
Engine.eventManager.on(CadEvents.EntityAdding, (args) => {
if (someCondition) {
args.cancel = true; // Cancel add operation
}
});Command Events
// Command started
Engine.eventManager.on(CadEvents.CommandStarted, (args) => {
console.log("Command started:", args.commandName);
});
// Command ended
Engine.eventManager.on(CadEvents.CommandEnded, (args) => {
console.log("Command ended:", args.commandName);
});Remove Event Listeners
// Remove a specific event listener
const handler = (args) => { /* ... */ };
Engine.eventManager.on(CadEvents.EntityAdded, handler);
Engine.eventManager.off(CadEvents.EntityAdded, handler);Common Event Types
| Event | Description |
|---|---|
EntityAdding | Before entity is added, cancelable |
EntityAdded | After entity is added |
EntityModifying | Before entity is modified, cancelable |
EntityModified | After entity is modified |
EntityErasing | Before entity is deleted, cancelable |
EntityErased | After entity is deleted |
SelectionChanged | Selection set changed |
CommandStarted | Command started |
CommandEnded | Command ended |
DocumentOpened | Document opened |
DocumentSaved | Document saved |