O'Reilly logo

Java Swing by Dave Wood, Marc Loy, Robert Eckstein

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required