This uses an entirely separate model which has to pick up many of the events typically slapped together inside of the native edit control, and the Peer for the edit control has to pry these events apart and rout them accordingly. An event is something triggered by the user or a method. User events are things like mouse moves, or keyboarding clicks. User events are usually triggered by the native windowing system, passed to the Peer, which in turn translates the event into an Event object, and then passes this to the appropriate component handler. The component handler separates the events and passes them to the appropriate listeners.
Listeners are objects that support certain interfaces.
These interfaces represent methods that called when the event in questions is triggered. For example, let's say a Panel object was created that contained a TextControl. The Panel wants to receive any changes to the text in the TextControl, thus it adds itself as a listener to the Model of the TextControl. Implementing Using a set of macros, listeners can be added relatively painlessly to any class that needs to support the necessary methods. In addition to macros for implementing the support for listeners, there are adapter classes written that provide simple implementation of the various Listener derived interfaces.