Annotationsänderungen via DocumentListener-Implementation erkennen

Änderungen an Annotationen werden anhand eines AnnotationPageSegmentEvent-Objekt propagiert, diese Events können über eine DocumentListener-Implementation ausgewertet / verarbeitet werden:

Document document = <Jadice Document-Instanz>

document.addDocumentListener(new DocumentListener() {
        
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
          // TODO Auto-generated method stub
        }
        
        @Override
        public void pageSegmentRemoved(PageSegmentEvent evt) {
          // TODO Auto-generated method stub
        }
        
        @Override
        public void pageSegmentModified(PageSegmentEvent evt) {
          // TODO Auto-generated method stub
         
          System.err.println("Event: " + evt.getType());
          
          if (evt != null && evt instanceof AnnotationPageSegmentEvent) {
            AnnotationPageSegmentEvent aEvent = (AnnotationPageSegmentEvent) evt;

            // Event-Type (siehe auch AnnotationPageSegmentEvent#EventType) 
            System.err.println("Event-Type: " + aEvent.getEventType());
            
            // Annotation holen
            Annotation a = aEvent.getAnnotation();
            // Alter Wert
            System.err.println("Alter Wert: " + aEvent.getOldValue());
            // Neuer Wert
            System.err.println("Neuer Wert: " + aEvent.getNewValue());
          }
        }
        
        @Override
        public void pageSegmentAdded(PageSegmentEvent evt) {
          // TODO Auto-generated method stub
        }
        
        @Override
        public void listChanged(ListEvent<Page> listChanges) {
          // TODO Auto-generated method stub
        }
});