def log_change ( self, undo_factory, *undo_args ):
        # Indicate that the contents of the user interface have been changed:
        ui          = self.ui
        ui.modified = True

        # Create an undo history entry if we are maintaining a history:
        undoable = ui._undoable
        if undoable >= 0:
            history = ui.history
            if history is not None:
                item = undo_factory( *undo_args )
                if item is not None:
                    if undoable == history.now:
                        # Create a new undo transaction:
                        history.add( item )
                    else:
                        # Extend the most recent undo transaction:
                        history.extend( item )

    #---------------------------------------------------------------------------
    #  Updates the editor when the object trait changes external to the editor:
    #
    #  (Should normally be overridden in a subclass)
    #---------------------------------------------------------------------------
Set a complete message.
dataset/ETHPy150Open enthought/traitsui/traitsui/editor.py/Editor.log_change--crossover with--dataset/ETHPy150Open kwikteam/phy/phy/utils/event.py/ProgressReporter.set_complete_message