MacroCommand

MacroCommand

new MacroCommand()

A base Command implementation that executes other Commands.

A `MacroCommand` maintains a list of `Command` Class references called SubCommands.

When `execute` is called, the `MacroCommand` instantiates and calls `execute` on each of its SubCommands turn. Each SubCommand will be passed a reference to the original `Notification` that was passed to the `MacroCommand`'s `execute` method.

Unlike `SimpleCommand`, your subclass should not override `execute`, but instead, should override the `initializeMacroCommand` method, calling `addSubCommand` once for each SubCommand to be executed.

Source:
See:
  • Controller Controller
  • Notification Notification
  • SimpleCommand SimpleCommand

Members

(protected) subCommands :Array.<function(): SimpleCommand>

Source:
Type:

Methods

addSubCommand(factory)

Add a SubCommand.

The SubCommands will be called in First In/First Out (FIFO) order.

Source:
Parameters:
Name Type Description
factory function

execute(notification)

Execute this MacroCommand's SubCommands.

The SubCommands will be called in First In/First Out (FIFO) order.

Source:
Parameters:
Name Type Description
notification Notification

initializeMacroCommand()

Initialize the MacroCommand.

In your subclass, override this method to initialize the `MacroCommand`'s SubCommand list with `Command` class references like this:

`
		// Initialize MyMacroCommand
		initializeMacroCommand() {
			this.addSubCommand(() => new app.FirstCommand());
			this.addSubCommand(() => new app.SecondCommand());
			this.addSubCommand(() => new app.ThirdCommand());
		}
`

Note that SubCommands may be any `Command` implementor, `MacroCommand`s or `SimpleCommands` are both acceptable.

Source:

MacroCommand

new MacroCommand()

Constructor.

You should not need to define a constructor, instead, override the `initializeMacroCommand` method.

If your subclass does define a constructor, be sure to call `super()`.

Source:

Members

(protected) subCommands :Array.<function(): SimpleCommand>

Source:
Type:

Methods

addSubCommand(factory)

Add a SubCommand.

The SubCommands will be called in First In/First Out (FIFO) order.

Source:
Parameters:
Name Type Description
factory function

execute(notification)

Execute this MacroCommand's SubCommands.

The SubCommands will be called in First In/First Out (FIFO) order.

Source:
Parameters:
Name Type Description
notification Notification

initializeMacroCommand()

Initialize the MacroCommand.

In your subclass, override this method to initialize the `MacroCommand`'s SubCommand list with `Command` class references like this:

`
		// Initialize MyMacroCommand
		initializeMacroCommand() {
			this.addSubCommand(() => new app.FirstCommand());
			this.addSubCommand(() => new app.SecondCommand());
			this.addSubCommand(() => new app.ThirdCommand());
		}
`

Note that SubCommands may be any `Command` implementor, `MacroCommand`s or `SimpleCommands` are both acceptable.

Source: