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.

DocumentEvent class diagram

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 ...

Get Java Swing now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.