org.eclipse.emf.edit.command
Class MoveCommand

java.lang.Object
  extended byorg.eclipse.emf.common.command.AbstractCommand
      extended byorg.eclipse.emf.edit.command.AbstractOverrideableCommand
          extended byorg.eclipse.emf.edit.command.MoveCommand
All Implemented Interfaces:
Command, OverrideableCommand

public class MoveCommand
extends AbstractOverrideableCommand

The move command logically acts upon an owner object that has a collection-based feature containing an object that is to be moved to a new position within the collection. The static create method delegates command creation to EditingDomain.createCommand, which may or may not result in the actual creation of an instance of this class. Like all the low level comands in this package, the move command is undoable.

The implementation of this class is low-level and EMF specific; it allows an object to be moved to a new position within a many-valued feature of an owner, i.e., it is equivalent of the call

   ((EList)((EObject)owner).eGet((EStructuralFeature)feature)).move(index, object);
 

It can also be used as an equivalent to the call

   ((EList)extent).move(index, object);
 
which is how root objects are moved within the contents of a resource. Like all the low-level comands in this package, the move command is undoable.

A move command is an OverrideableCommand.


Nested Class Summary
 
Nested classes inherited from class org.eclipse.emf.common.command.AbstractCommand
AbstractCommand.NonDirtying
 
Field Summary
protected static String DESCRIPTION
          This caches the description.
protected static String DESCRIPTION_FOR_LIST
          This caches the description for a list-based command.
protected  EStructuralFeature feature
          This is the feature of the owner object upon the command will act.
protected  int index
          This is the position to which the object will be moved.
protected static String LABEL
          This caches the label.
protected  int oldIndex
          This is the orginal position to which the object will be moved upon undo.
protected  EObject owner
          This is the owner object upon which the command will act.
protected  EList ownerList
          This is the list in which the command will move an object.
protected  Object value
          This is the value being moved within the owner list.
 
Fields inherited from class org.eclipse.emf.edit.command.AbstractOverrideableCommand
domain, overrideCommand
 
Fields inherited from class org.eclipse.emf.common.command.AbstractCommand
description, isExecutable, isPrepared, label
 
Constructor Summary
MoveCommand(EditingDomain domain, EList list, Object value, int index)
          This constructs a primitive command to move a particular value to a particular index of the specified extent.
MoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Object value, int index)
          This constructs a primitive command to move a particular value to a particular index of the specified many-valued feature of the owner.
 
Method Summary
static Command create(EditingDomain domain, Object owner, Object feature, Object value, int index)
          This creates a command to move particular value to a particular index in the specified feature of the owner.
 void doExecute()
          This is overrideable command's implementation of execute.
 Collection doGetAffectedObjects()
          This is overrideable command's implementation of getAffectedObjects.
 Collection doGetResult()
          This is overrideable command's implementation of getResult.
 void doRedo()
          This is overrideable command's implementation of redo.
 void doUndo()
          This is overrideable command's implementation of undo.
 EStructuralFeature getFeature()
          This returns the feature of the owner object upon the command will act.
 int getIndex()
          This returns the position to which the value will be moved.
 int getOldIndex()
          This returns the orginal position to which the object will be moved upon undo.
 EObject getOwner()
          This returns the owner object upon which the command will act.
 EList getOwnerList()
          This returns the list in which the command will move an object.
 Object getValue()
          This returns the value being moved.
protected  boolean prepare()
          Called at most once in AbstractOverrideableCommand.canExecute() to give the command an opportunity to ready itself for execution.
 String toString()
          This gives an abbreviated name using this object's own class' name, without package qualification, followed by a space separated list of field:value pairs.
 
Methods inherited from class org.eclipse.emf.edit.command.AbstractOverrideableCommand
canExecute, canUndo, dispose, doCanExecute, doCanUndo, doDispose, doGetChildrenToCopy, doGetDescription, doGetLabel, execute, getAffectedObjects, getChildrenToCopy, getDescription, getDomain, getLabel, getOverride, getOwnerList, getResult, redo, setOverride, undo
 
Methods inherited from class org.eclipse.emf.common.command.AbstractCommand
chain, setDescription, setLabel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.emf.common.command.Command
chain
 

Field Detail

LABEL

protected static final String LABEL
This caches the label.


DESCRIPTION

protected static final String DESCRIPTION
This caches the description.


DESCRIPTION_FOR_LIST

protected static final String DESCRIPTION_FOR_LIST
This caches the description for a list-based command.


owner

protected EObject owner
This is the owner object upon which the command will act. It could be null in the case that we are dealing with an EList.


feature

protected EStructuralFeature feature
This is the feature of the owner object upon the command will act. It could be null, in the case that we are dealing with an EList.


ownerList

protected EList ownerList
This is the list in which the command will move an object.


value

protected Object value
This is the value being moved within the owner list.


index

protected int index
This is the position to which the object will be moved.


oldIndex

protected int oldIndex
This is the orginal position to which the object will be moved upon undo.

Constructor Detail

MoveCommand

public MoveCommand(EditingDomain domain,
                   EObject owner,
                   EStructuralFeature feature,
                   Object value,
                   int index)
This constructs a primitive command to move a particular value to a particular index of the specified many-valued feature of the owner.


MoveCommand

public MoveCommand(EditingDomain domain,
                   EList list,
                   Object value,
                   int index)
This constructs a primitive command to move a particular value to a particular index of the specified extent.

Method Detail

create

public static Command create(EditingDomain domain,
                             Object owner,
                             Object feature,
                             Object value,
                             int index)
This creates a command to move particular value to a particular index in the specified feature of the owner. The feature will often be null because the domain will deduce it.


getOwner

public EObject getOwner()
This returns the owner object upon which the command will act. It could be null in the case that we are dealing with an EList.


getFeature

public EStructuralFeature getFeature()
This returns the feature of the owner object upon the command will act. It could be null, in the case that we are dealing with an EList.


getOwnerList

public EList getOwnerList()
This returns the list in which the command will move an object.


getValue

public Object getValue()
This returns the value being moved.


getIndex

public int getIndex()
This returns the position to which the value will be moved.


getOldIndex

public int getOldIndex()
This returns the orginal position to which the object will be moved upon undo.


prepare

protected boolean prepare()
Description copied from class: AbstractCommand
Called at most once in AbstractCommand.canExecute() to give the command an opportunity to ready itself for execution. The returned value is stored in AbstractCommand.canExecute(). In other words, you can override this method to initialize and to yield a cached value for the all subsequent calls to canExecute.

Overrides:
prepare in class AbstractCommand
Returns:
whether the command is executable.

doExecute

public void doExecute()
Description copied from interface: OverrideableCommand
This is overrideable command's implementation of execute.

Specified by:
doExecute in interface OverrideableCommand
Specified by:
doExecute in class AbstractOverrideableCommand

doUndo

public void doUndo()
Description copied from interface: OverrideableCommand
This is overrideable command's implementation of undo.

Specified by:
doUndo in interface OverrideableCommand
Specified by:
doUndo in class AbstractOverrideableCommand

doRedo

public void doRedo()
Description copied from interface: OverrideableCommand
This is overrideable command's implementation of redo.

Specified by:
doRedo in interface OverrideableCommand
Specified by:
doRedo in class AbstractOverrideableCommand

doGetResult

public Collection doGetResult()
Description copied from interface: OverrideableCommand
This is overrideable command's implementation of getResult.

Specified by:
doGetResult in interface OverrideableCommand
Overrides:
doGetResult in class AbstractOverrideableCommand

doGetAffectedObjects

public Collection doGetAffectedObjects()
Description copied from interface: OverrideableCommand
This is overrideable command's implementation of getAffectedObjects.

Specified by:
doGetAffectedObjects in interface OverrideableCommand
Overrides:
doGetAffectedObjects in class AbstractOverrideableCommand

toString

public String toString()
This gives an abbreviated name using this object's own class' name, without package qualification, followed by a space separated list of field:value pairs.

Overrides:
toString in class AbstractOverrideableCommand

Copyright 2001-2006 IBM Corporation and others.
All Rights Reserved.