... /** * Base class for all objects that need to collaborate through notifications. * <b>Role</b>: To provide the basic command behavior, that is, to * send notifications, that usually depicts a user interaction, to other commands * and to receive notifications sent by other commands. * This behavior is known as the send/receive communication protocol. * <p> * All the existing commands are organized as a tree structure. * Each command has a parent command and possibly children. * The parent is passed as a parameter of the command constructor. * <p> * When the end-user interacts with the application, system events are produced * that are turned into notifications, and sent to either the command * that is involved, such as the push button pushed by the end user, * or to the command that is the nearest to the * user interaction, such as the manipulator set onto a document object's representation * selected by the end user in a graphics viewer. * <p> * The notification is sent from command to command along the tree structure * until it can be processed. * If no command able to process the notification is * found, it is sent to the command selector that resends it to * the active command. * This can decide to process the notification, * or otherwise to do something else, possibly nothing. * * @see CATCallbackManager, CATNotification */ class ExportedByJS0FM CATCommand : public CATEventSubscriber { ...