Events¶
The Component Architecture provides a way to dispatch events to event handlers. Event handlers are registered as subscribers a.k.a. handlers.
Before we can start we need to import zope.component.event
to make
the dispatching effective:
Consider two event classes:
Now consider two handlers for these event classes:
We can register them with the Component Architecture:
Now let’s go through the events. We’ll see that the handlers have been called accordingly:
Object events¶
The objectEventNotify
function is a subscriber to dispatch
ObjectEvents to interested adapters.
First create an object class:
Then create an event class:
Create an object and an event:
Then notify the event to the subscribers. Since the subscribers list is empty, nothing happens.
Now create an handler for the event:
The event is notified to the subscriber:
Following test demonstrates how a subscriber can raise an exception to prevent an action.
Let’s create a container:
And put the object into the container:
Create an handler function that will raise an error when called:
Register the handler:
Then if we try to remove the object, an ObjectThrownEvent is fired: