The commit that wrote the change, or null when it was not written: a calculation landing,
the engine rewriting a formula's text, or a change announced outside a commit (a table's own
style, a cache that has to repaint).
The event this is: the listener it is delivered to, and for one read back with IWorkbook.getChanges, the listener it was delivered to.
The commit the change moved from: for a write its parent, for an undo the commit undone.
null for a derived change, or when there is none.
The same ranges as they were at getPreviousCommit: what the change replaced.
Ranges on a detached copy of the sheet, built only when asked for: reading them costs
nothing on the write path, and writing to them does not reach the workbook. null when
there is no previous commit, when the store no longer keeps it, or when the change moved
cells (an insert, a delete, a move): the addresses then name different cells before it.
getShifts says how they moved.
The ranges that changed, or null when the extent is not known and the whole sheet should
be treated as changed.
The sheet that changed.
The inserts and deletes of cells the change made on this sheet, in the order they ran. Empty when it moved no cells.
true when the change is an undo. A redo is not an undo: it announces the commit it
restored, as the forward commit did.
What a change event announces: where the change landed and what wrote it.
Example