/* $Id: IsCommandManager.java,v 1.6 2002/05/23 22:30:14 jantos Exp $ * * Copyright (c) 2001 - 2002 Cycorp, Inc. All rights reserved. * * This software is the proprietary information of Cycorp, Inc. * Use is subject to license terms. * */ package com.cyc.blue.command; import java.util.*; /** * Implement to obtain the ability to queue commands for execution as well as * undo and redo executed commands. The command manager is typically a thread * that manages a command queue. Commands are executed by sending them to the * associated command executor. * * @author John Jantos * @date 2001/09/19 * @version $Id: IsCommandManager.java,v 1.6 2002/05/23 22:30:14 jantos Exp $ */ public interface IsCommandManager extends IsCommandProcessor { /** sets the object that this command manager manages commands for. * @param _commandable */ public void setCommandable(IsCommandable _commandable); /** gets the object that this command manager manages commands for. * @return the commanded object. */ public IsCommandable getCommandable(); /** sets the command executor associated with this command manager. * @param _commandExecutor */ public void setCommandExecutor(IsCommandExecutor _commandExecutor); /** gets the command executor associated with this command manager. * @return the command executor */ public IsCommandExecutor getCommandExecutor(); /** queues the command. * @param _command */ public void queueCommand(IsCommand _command); /** gets the size of the current command queue * @return the command queue size */ public int getCommandQueueSize(); /** gets the undo status of the command manager. * @return true if the last command can be undone, false otherwise. */ public boolean canUndo(); /** undos (unexecutes) the last command executed. If there are commands in * the command queue this call is ignored. */ public void undo(); /** gets the redo status of the command manager. * @return true if the last undone command can be redone, false otherwise. */ public boolean canRedo(); /** redos (reexecutes) the last command unexecuted. If there are commands in * the command queue this call is ignored. */ public void redo(); //???? //public Collection addCommandType(); //public Collection getCommandTypes(); }