Intro
Contents
Questo articolo mostra come implementare le funzionalità di undo/redo per una classe, la SPECTRAL_IMAGE.
Per prima cosa ricordiamo che SPECTRAL_IMAGE deriva dalla classe DOCUMENT, della quale è di seguito mostrato il diagramma:
Come si nota, DOCUMENT ha ereditato da DB_OBJECT l’interfaccia DOCUMENT_HISTORY; pertanto, anche la classe SPECTRAL_IMAGE dispone della stessa interfaccia. Analizziamo ora nei particolari come implementare le azioni di Undo. Mostreremo come esempio l’aggiunta di una funzione di ripristino di un’area modificata.
A questo scopo verrà definita la classe AREA_RESTORE , derivata da ACTION, che ha la funzione di gestire il salvataggio e recupero dalla DOCUMENT_HISTORY dell’area.