code: public CompoundEdit beginUndoAtom( String strDisplayName )
    {
      if( isPaused() )
      {
        // Ignore edits while paused...
  
        return null;
      }
  
      CompoundEdit parent = null;
      try
      {
        parent = _undoAtomNest.peek();
      }
      catch( EmptyStackException empty )
      {
        // ignore
      }
  
      parent = parent == null ? this : parent;
      DisplayableCompoundEdit undoAtom = new DisplayableCompoundEdit( strDisplayName );
      parent.addEdit( undoAtom );
      _undoAtomNest.push( undoAtom );
      return undoAtom;
    }
docs: Begin an atomic undo boundary.  Edits added to this undo mananger after
  this call are considered "subatomic" -- they become part of the atom
  defined by the boundary. The atom's boundary ends with a call to <code>endUndoAtom()</code>.
  <p/>
  Note undo atoms can contain other undo atoms allowing for unlimited nesting of atomic
  undo operations.
  
  @param strDisplayName The name associated with the undo atom. A user interface typically
  displays this name in Undo/Redo menu items or toolbar button text.
  
  @see javax.swing.undo.UndoManager#getUndoPresentationName