public class CommandSequence extends CommandBase
All commands contained in this sequence are executed in turn. Execution
fails at first command which cannot be executed (CommandBase.prepare(com.xmlmind.xmledit.view.DocumentView, java.lang.String, int, int)
returns false
) or at first command
which returns a non-successful CommandResult
.
Otherwise a CommandSequence returns the result of its last command.
CommandChoice
Modifier and Type | Field and Description |
---|---|
protected CommandEntry[] |
sequence |
protected boolean |
undoable |
protected String |
undoLabel |
recordable, repeatable
Constructor and Description |
---|
CommandSequence(CommandEntry[] sequence,
boolean repeatable,
boolean recordable,
boolean undoable,
String undoLabel)
Constructs a command consisting in specified sequence of commands.
|
Modifier and Type | Method and Description |
---|---|
CommandSequence |
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.
|
protected CommandResult |
executeSequence(DocumentView docView,
String parameter,
int x,
int y) |
CommandEntry[] |
getSequence()
Returns the commands composing this CommandSequence.
|
String |
getUndoLabel()
Returns the text describing what does the undo command,
to be displayed by the GUI of the XML editor.
|
boolean |
isUndoable()
Returns
true if this sequence can be undone as a whole. |
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[] sequence
protected boolean undoable
protected String undoLabel
public CommandSequence(CommandEntry[] sequence, boolean repeatable, boolean recordable, boolean undoable, String undoLabel)
sequence
- the sequence of commandsrepeatable
- true
if this command is repeatable;
false
otherwiserecordable
- true
if this command is recordable;
false
otherwiseundoable
- true
if this command can be undone
as a wholeundoLabel
- the text describing what does the undo command,
to be displayed by the GUI of the XML editor;
may be null
public CommandSequence copy()
Command
null
if how to copy this command
cannot be determinedpublic CommandEntry[] getSequence()
public boolean isUndoable()
true
if this sequence can be undone as a whole.public String getUndoLabel()
null
.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
protected CommandResult executeSequence(DocumentView docView, String parameter, int x, int y)