public void undoableEditHappened(javax.swing.event.UndoableEditEvent e) {
_timer.stop();
long currentTime = System.currentTimeMillis();
Object currentSource = e.getSource();
if (_editInProgress == null) {
_editInProgress = new CompoundEdit();
} else if ((_lastEditSource != currentSource)
|| ((currentTime - _lastEditTime) > EDIT_COMPOSITION_THRESHOLD)) {
closeEditInProgress(false);
_editInProgress = new CompoundEdit();
}
_editInProgress.addEdit(e.getEdit());
_lastEditTime = currentTime;
_lastEditSource = currentSource;
_timer.restart();