Stirls
Stirls

Reputation: 97

Extending Swing's UndoManager to provide repeat and multiple undo/redo

I've been tasked with adding undo/redo/repeat functionality to an application. I'm currently investigating whether I can use Swing's UndoManager.

Apart from the usual undo and redo buttons, I need to provide the ability to undo or redo multiple edits at once (drop down UI like MS Office), and repeat a chosen edit.

I believe I can use UndoManager for multiple undo and redo. It provides methods for multiple undo and redo. To build the UI, I can extend UndoManager to expose the edits it holds.

I'm not sure I can use UndoManager for repeat chosen operation however. My first thoughts were to extend UndoManager and add a repeat(edit) method. This method would clone or copy an edit, redo the copy, and then place the copy on top of the undo stack. An edit would only be repeatable if it implemented Clonable.

Does this seem reasonable? Are there better solutions? Should I be rolling my own instead of UndoManager? Thanks in advance.

Upvotes: 2

Views: 1704

Answers (2)

lbalazscs
lbalazscs

Reputation: 17784

UndoManager supports an unlimited number of undo/redo operations. See the documentation

It seems reasonable to me to extends UndoManager in order to add the support for repeat, because the last edit is already there.

Upvotes: 0

StanislavL
StanislavL

Reputation: 57381

Hope this helps http://java-sl.com/tip_merge_undo_edits.html

Upvotes: 5

Related Questions