CompoundEdit (Java SE 22 & JDK 22)
Description: declaration: module: java.desktop, package: javax.swing.undo, class: CompoundEdit
Keywords: javax.swing.undo.CompoundEdit class

Module java.desktop
Package javax.swing.undo

# Class CompoundEdit

java.lang.Object
javax.swing.undo.AbstractUndoableEdit
javax.swing.undo.CompoundEdit

All Implemented Interfaces:
  `Serializable`, `UndoableEdit`

Direct Known Subclasses:
  `AbstractDocument.DefaultDocumentEvent`, `UndoManager`

public class CompoundEdit extends AbstractUndoableEdit
A concrete subclass of AbstractUndoableEdit, used to assemble little UndoableEdits into great big ones.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Vector<UndoableEdit>`
  `edits`
  The collection of `UndoableEdit`s undone/redone en masse by this `CompoundEdit`.

  ### Fields declared in class javax.swing.undo.AbstractUndoableEdit

  `RedoName, UndoName`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CompoundEdit()`
  Constructs a `CompoundEdit`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `addEdit(UndoableEdit anEdit)`
  If this edit is `inProgress`, accepts `anEdit` and returns true.
  `boolean`
  `canRedo()`
  Returns false if `isInProgress` or if super returns false.
  `boolean`
  `canUndo()`
  Returns false if `isInProgress` or if super returns false.
  `void`
  `die()`
  Sends `die` to each subedit, in the reverse of the order that they were added.
  `void`
  `end()`
  Sets `inProgress` to false.
  `String`
  `getPresentationName()`
  Returns `getPresentationName` from the last `UndoableEdit` added to `edits`.
  `String`
  `getRedoPresentationName()`
  Returns `getRedoPresentationName` from the last `UndoableEdit` added to `edits`.
  `String`
  `getUndoPresentationName()`
  Returns `getUndoPresentationName` from the last `UndoableEdit` added to `edits`.
  `boolean`
  `isInProgress()`
  Returns true if this edit is in progress--that is, it has not received end.
  `boolean`
  `isSignificant()`
  Returns true if any of the `UndoableEdit`s in `edits` do.
  `protected UndoableEdit`
  `lastEdit()`
  Returns the last `UndoableEdit` in `edits`, or `null` if `edits` is empty.
  `void`
  `redo()`
  Sends `redo` to all contained `UndoableEdit`s in the order in which they were added.
  `String`
  `toString()`
  Returns a string that displays and identifies this object's properties.
  `void`
  `undo()`
  Sends `undo` to all contained `UndoableEdits` in the reverse of the order in which they were added.

  ### Methods declared in class javax.swing.undo.AbstractUndoableEdit

  `replaceEdit`

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### edits

    protected Vector<UndoableEdit> edits
    The collection of `UndoableEdit`s undone/redone en masse by this `CompoundEdit`.

- ## Constructor Details

  - ### CompoundEdit

    public CompoundEdit()
    Constructs a `CompoundEdit`.

- ## Method Details

  - ### undo

    public void undo() throws CannotUndoException
    Sends `undo` to all contained `UndoableEdits` in the reverse of the order in which they were added.
    Specified by:
      `undo` in interface `UndoableEdit`
    Overrides:
      `undo` in class `AbstractUndoableEdit`
    Throws:
      `CannotUndoException` - if `canUndo` returns `false`
    See Also:
      - `AbstractUndoableEdit.canUndo()`

  - ### redo

    public void redo() throws CannotRedoException
    Sends `redo` to all contained `UndoableEdit`s in the order in which they were added.
    Specified by:
      `redo` in interface `UndoableEdit`
    Overrides:
      `redo` in class `AbstractUndoableEdit`
    Throws:
      `CannotRedoException` - if `canRedo` returns `false`
    See Also:
      - `AbstractUndoableEdit.canRedo()`

  - ### lastEdit

    protected UndoableEdit lastEdit()
    Returns the last `UndoableEdit` in `edits`, or `null` if `edits` is empty.
    Returns:
      the last `UndoableEdit` in `edits`, or `null` if `edits` is empty.

  - ### die

    public void die()
    Sends `die` to each subedit, in the reverse of the order that they were added.
    Specified by:
      `die` in interface `UndoableEdit`
    Overrides:
      `die` in class `AbstractUndoableEdit`
    See Also:
      - `die()`

  - ### addEdit

    public boolean addEdit(UndoableEdit anEdit)
    If this edit is `inProgress`, accepts `anEdit` and returns true.

    The last edit added to this `CompoundEdit` is given a chance to `addEdit(anEdit)`. If it refuses (returns false), `anEdit` is given a chance to `replaceEdit` the last edit. If `anEdit` returns false here, it is added to `edits`.

    Specified by:
      `addEdit` in interface `UndoableEdit`
    Overrides:
      `addEdit` in class `AbstractUndoableEdit`
    Parameters:
      `anEdit` - the edit to be added
    Returns:
      true if the edit is `inProgress`; otherwise returns false
    See Also:
      - `UndoableEdit.addEdit(javax.swing.undo.UndoableEdit)`

  - ### end

    public void end()
    Sets `inProgress` to false.
    See Also:
      - `canUndo()`
      - `canRedo()`

  - ### canUndo

    public boolean canUndo()
    Returns false if `isInProgress` or if super returns false.
    Specified by:
      `canUndo` in interface `UndoableEdit`
    Overrides:
      `canUndo` in class `AbstractUndoableEdit`
    Returns:
      true if this edit is `alive` and `hasBeenDone` is `true`
    See Also:
      - `isInProgress()`

  - ### canRedo

    public boolean canRedo()
    Returns false if `isInProgress` or if super returns false.
    Specified by:
      `canRedo` in interface `UndoableEdit`
    Overrides:
      `canRedo` in class `AbstractUndoableEdit`
    Returns:
      `true` if this edit is `alive` and `hasBeenDone` is `false`
    See Also:
      - `isInProgress()`

  - ### isInProgress

    public boolean isInProgress()
    Returns true if this edit is in progress--that is, it has not received end. This generally means that edits are still being added to it.
    Returns:
      whether this edit is in progress
    See Also:
      - `end()`

  - ### isSignificant

    public boolean isSignificant()
    Returns true if any of the `UndoableEdit`s in `edits` do. Returns false if they all return false.
    Specified by:
      `isSignificant` in interface `UndoableEdit`
    Overrides:
      `isSignificant` in class `AbstractUndoableEdit`
    Returns:
      true
    See Also:
      - `UndoableEdit.isSignificant()`

  - ### getPresentationName

    public String getPresentationName()
    Returns `getPresentationName` from the last `UndoableEdit` added to `edits`. If `edits` is empty, calls super.
    Specified by:
      `getPresentationName` in interface `UndoableEdit`
    Overrides:
      `getPresentationName` in class `AbstractUndoableEdit`
    Returns:
      the empty string ""
    See Also:
      - `AbstractUndoableEdit.getUndoPresentationName()`
      - `AbstractUndoableEdit.getRedoPresentationName()`

  - ### getUndoPresentationName

    public String getUndoPresentationName()
    Returns `getUndoPresentationName` from the last `UndoableEdit` added to `edits`. If `edits` is empty, calls super.
    Specified by:
      `getUndoPresentationName` in interface `UndoableEdit`
    Overrides:
      `getUndoPresentationName` in class `AbstractUndoableEdit`
    Returns:
      the value from the defaults table with key `AbstractUndoableEdit.undoText`, followed by a space, followed by `getPresentationName` unless `getPresentationName` is "" in which case, the defaults value is returned alone.
    See Also:
      - `AbstractUndoableEdit.getPresentationName()`

  - ### getRedoPresentationName

    public String getRedoPresentationName()
    Returns `getRedoPresentationName` from the last `UndoableEdit` added to `edits`. If `edits` is empty, calls super.
    Specified by:
      `getRedoPresentationName` in interface `UndoableEdit`
    Overrides:
      `getRedoPresentationName` in class `AbstractUndoableEdit`
    Returns:
      the value from the defaults table with key `AbstractUndoableEdit.redoText`, followed by a space, followed by `getPresentationName` unless `getPresentationName` is "" in which case, the defaults value is returned alone.
    See Also:
      - `AbstractUndoableEdit.getPresentationName()`

  - ### toString

    public String toString()
    Returns a string that displays and identifies this object's properties.
    Overrides:
      `toString` in class `AbstractUndoableEdit`
    Returns:
      a String representation of this object