Advanced AbstractDocument Event Model
The classes and interfaces we’ve
covered so far (DocumentEvent,
EventType, EventChange, and
DocumentEventListener) are all you need to
understand if you just want to receive and interpret
DocumentEvents via a
DocumentListener. In the next few pages,
we’ll cover two additional classes used by
AbstractDocument and its subclasses (and
subclasses you might create yourself). If you’re interested in
the details of how AbstractDocument actually
manages undoable changes, read on. If not, you can safely skip ahead
to the next chapter.
Figure 20.10 is a class diagram showing the classes
and interfaces that make up the document event model. It includes the
related classes and interfaces from the undo
package. As we’ve already discussed, a
DocumentEvent is characterized by its
EventType and is made up of
ElementChange objects. Each
ElementChange describes changes made to some
Element. These changes are made up of a set of
Elements added to the changed
Element and a set of Elements
removed from it.

Figure 20-10. DocumentEvent class diagram
The rest of this diagram shows how
AbstractDocument.DefaultDocumentEvent and
AbstractDocument.ElementEdit implement the
DocumentEvent and
AbstractDocument.ElementChange interfaces, while
extending classes from the undo package to provide
events for both DocumentListeners and
UndoableEditListeners. We’ll get into the details ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access