I tried to implement this myself, but found that if I check canUndo or getUndoPresentationName before the DelayUndoManager's timer goes off, the DelayUndoManager will prematurely commit the edits (which defeats the purpose of using the DelayUndoManager in the first place). My only other option is to re-write your DelayUndoManager myself to coordinate the actions better. I don't like re-writing things other people already wrote

I believe if you provided these actions (and a way to easily customize the other attributes of the action like menumonic, accelerator, and icon), your DelayUndoManager would be much easier to use and provide menus/toolbars that work great.