1.2 Release
There is a change in how undo manager is constructed. Instead of providing an unapply
function, you now need to provide an invert
function that returns an inverse of a given change, such that
unapply(change) = apply(invert(change))
It is now also required that the change objects properly implement equals
.
While these changes pose additional requirements on the user side, it allows the implementation to detect potential problems in the application: whenever the UndoManager is applying a change, it expects to receive the exact same change (up to equals
) in the observed EventStream of changes. If this does not happen, it is very likely a problem that otherwise could go undetected.