Class CompoundCommand

java.lang.Object
org.eclipse.gef.commands.Command
org.eclipse.gef.commands.CompoundCommand
Direct Known Subclasses:
ForwardUndoCompoundCommand

public class CompoundCommand extends Command
An aggregation of multiple Commands. A CompoundCommand is executable if all of its contained Commands are executable, and it has at least one contained Command. The same is true for undo. When undo is called, the contained Commands are undone in the reverse order in which they were executed.

An empty CompoundCommand is not executable.

A CompoundCommand can be unwrapped. Unwrapping returns the simplest equivalent form of the CompoundCommand. So, if a CompoundCommand contains just one Command, that Command is returned.

  • Constructor Details

    • CompoundCommand

      public CompoundCommand()
      Constructs an empty CompoundCommand
      Since:
      2.0
    • CompoundCommand

      public CompoundCommand(String label)
      Constructs an empty CompoundCommand with the specified label.
      Parameters:
      label - the label for the Command
  • Method Details

    • add

      public void add(Command command)
      Adds the specified command if it is not null.
      Parameters:
      command - null or a Command
    • canRedo

      public boolean canRedo()
      Overrides:
      canRedo in class Command
      Returns:
      true if the command can be redone. This method should only be called after undo() has been called.
      Since:
      3.10
      See Also:
    • canExecute

      public boolean canExecute()
      Overrides:
      canExecute in class Command
      Returns:
      true if the command can be executed
      See Also:
    • canUndo

      public boolean canUndo()
      Overrides:
      canUndo in class Command
      Returns:
      true if the command can be undone. This method should only be called after execute() or redo() has been called.
      See Also:
    • dispose

      public void dispose()
      Disposes all contained Commands.
      Overrides:
      dispose in class Command
      See Also:
    • execute

      public void execute()
      Execute the command.For a compound command this means executing all of the commands that it contains.
      Overrides:
      execute in class Command
    • getChildren

      public Object[] getChildren()
      This is useful when implementing ITreeContentProvider.getChildren(Object) to display the Command's nested structure.
      Returns:
      returns the Commands as an array of Objects.
    • getCommands

      public List getCommands()
      Returns:
      the List of contained Commands
    • getLabel

      public String getLabel()
      Overrides:
      getLabel in class Command
      Returns:
      a String used to describe this command to the User
      See Also:
    • isEmpty

      public boolean isEmpty()
      Returns:
      true if the CompoundCommand is empty
    • redo

      public void redo()
      Description copied from class: Command
      Re-executes the Command. This method should only be called after undo() has been called.
      Overrides:
      redo in class Command
      See Also:
    • size

      public int size()
      Returns:
      the number of contained Commands
    • undo

      public void undo()
      Description copied from class: Command
      Undoes the changes performed during execute(). This method should only be called after execute has been called, and only when canUndo() returns true.
      Overrides:
      undo in class Command
      See Also:
    • unwrap

      public Command unwrap()
      Returns the simplest form of this Command that is equivalent. This is useful for removing unnecessary nesting of Commands.
      Returns:
      the simplest form of this Command that is equivalent