public class CommandChoice extends CommandBase
All commands contained in the choice list are executed in turn. Execution succeeds, and hence stops, at first command which can be executed. A CommandChoice returns the result of this sucessfully executed command.
CommandSequence
Modifier and Type | Field and Description |
---|---|
protected CommandEntry[] |
choices |
protected CommandBase |
preparedCommand |
protected String |
preparedCommandParameter |
protected static char[] |
VAR_NAMES |
protected static Object[] |
VAR_VALUES |
recordable, repeatable
Constructor and Description |
---|
CommandChoice(CommandEntry[] choices,
boolean repeatable,
boolean recordable)
Constructs a command consisting in specified choice of commands.
|
Modifier and Type | Method and Description |
---|---|
CommandChoice |
copy()
Makes a deep copy of this command.
|
CommandResult |
doExecute(DocumentView docView,
String parameter,
int x,
int y)
Actually executes this command with specified parameter and in
specified context.
|
CommandEntry[] |
getChoices()
Returns the commands composing this CommandChoice.
|
boolean |
prepare(DocumentView docView,
String parameter,
int x,
int y)
Tests whether this command can be executed with specified parameter
and in specified context.
|
doExecuteByName, execute, executeCommand, isRecordable, isRepeatable, prepareCommand
protected CommandEntry[] choices
protected CommandBase preparedCommand
protected String preparedCommandParameter
protected static final char[] VAR_NAMES
protected static final Object[] VAR_VALUES
public CommandChoice(CommandEntry[] choices, boolean repeatable, boolean recordable)
choices
- the commands composing this CommandChoicerepeatable
- true
if this command is repeatable;
false
otherwiserecordable
- true
if this command is recordable;
false
otherwisepublic CommandChoice copy()
Command
null
if how to copy this command
cannot be determinedpublic CommandEntry[] getChoices()
public boolean prepare(DocumentView docView, String parameter, int x, int y)
CommandBase
If the command can be executed, this method returns
true
after having configured its internal state for
consumption by method CommandBase.execute(com.xmlmind.xmledit.view.DocumentView, java.lang.String, int, int)
which should be invoked
immediately after this one.
Returns false
if this command cannot be executed with
specified parameter and in specified context.
prepare
in class CommandBase
docView
- the target of this commandparameter
- parameterizes the command (that is, modifies the
behavior of the command in a command specific way)x
- X position relative to docView of the mouse event
having triggered this command; -1 if this command was triggered by a
keyboard inputy
- Y position relative to docView of the mouse event
having triggered this command; -1 if this command was triggered by a
keyboard inputpublic CommandResult doExecute(DocumentView docView, String parameter, int x, int y)
CommandBase
This method assumes that CommandBase.prepare(com.xmlmind.xmledit.view.DocumentView, java.lang.String, int, int)
has been
successfully invoked immediately before its own invocation.
IMPORTANT: application code which executes a command
must always use CommandBase.execute(com.xmlmind.xmledit.view.DocumentView, java.lang.String, int, int)
or CommandBase.executeCommand(com.xmlmind.xmledit.gadget.Gadget, java.lang.String, int, int)
to do so,
NOT CommandBase.doExecute(com.xmlmind.xmledit.view.DocumentView, java.lang.String, int, int)
. CommandBase.doExecute(com.xmlmind.xmledit.view.DocumentView, java.lang.String, int, int)
is intended to be used
only by commands which invoke helper "sub-commands".
doExecute
in class CommandBase
docView
- the target of this commandparameter
- parameterizes the command (that is, modifies the
behavior of the command in a command specific way)x
- X position relative to docView of the mouse event
having triggered this command; -1 if this command was triggered by a
keyboard inputy
- Y position relative to docView of the mouse event
having triggered this command; -1 if this command was triggered by a
keyboard inputnull
.
If the command execution is successful and
the command is repeatable and/or recordable then
CommandResult.details
field of the result is expected
to be one of:
null
Object
String
s