Runtime

## org.eclipse.gmf.runtime.emf.type.core.commands
Class MoveElementsCommand

    java.lang.Object
      org.eclipse.core.commands.operations.AbstractOperation
          org.eclipse.emf.workspace.AbstractEMFOperation
              org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand
                  org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand
                      org.eclipse.gmf.runtime.emf.type.core.commands.MoveElementsCommand

All Implemented Interfaces:
  IUndoableOperation, ICommand, org.eclipse.gmf.runtime.common.core.internal.command.ICommandWithSettableResult

    public class MoveElementsCommand

extends EditElementCommand

Command to move model elements using the EMF action protocol.

If the target features are not specified in the request, and the features fomerly containing the moved elements exists in the target element, they will be used.

Constructor Summary
`MoveElementsCommand(MoveRequest request)` Constructs a new command to move a model element

Method Summary
`boolean` `canExecute()` Checks that the element to be modified by this command is of the correct kind.
`protected CommandResult` `doExecuteWithResult(IProgressMonitor monitor, IAdaptable info)` Implemented by subclasses to perform the model changes.
`protected java.util.Map` `getElementsToMove()` Gets the map of elements to be moved.
`protected org.eclipse.emf.ecore.EObject` `getTargetContainer()` Gets the target container.
`protected org.eclipse.emf.ecore.EReference` `getTargetFeature(org.eclipse.emf.ecore.EObject element)` Gets the feature in the target element that should contain `element` after it is moved.
`protected void` `setTargetFeature(org.eclipse.emf.ecore.EObject element, org.eclipse.emf.ecore.EReference targetFeature)` Sets the reference feature into which an element should be moved.

Methods inherited from class org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand
`getAffectedFiles, getEClass, getEClassToEdit, getElementToEdit, getRequest, isOK, setEClass, setElementToEdit`

Methods inherited from class org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand
`aggregateStatuses, cleanup, compose, didRedo, didUndo, doExecute, doRedo, doUndo, getAffectedFiles, getCommandResult, getWorkspaceFiles, getWorkspaceFiles, internalSetResult, reduce, setResult`

Methods inherited from class org.eclipse.emf.workspace.AbstractEMFOperation
`canRedo, canUndo, didCommit, dispose, execute, getChange, getEditingDomain, getOptions, redo, undo`

Methods inherited from class org.eclipse.core.commands.operations.AbstractOperation
`addContext, getContexts, getLabel, hasContext, removeContext, setLabel, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.eclipse.gmf.runtime.common.core.command.ICommand
`setLabel`

Methods inherited from interface org.eclipse.core.commands.operations.IUndoableOperation
`addContext, canRedo, canUndo, dispose, execute, getContexts, getLabel, hasContext, redo, removeContext, undo`

Constructor Detail

### MoveElementsCommand

    public MoveElementsCommand(MoveRequest request)

  Constructs a new command to move a model element

  Parameters:
    `request` - the move element request

Method Detail

### doExecuteWithResult

    protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
                                                IAdaptable info)
                                         throws ExecutionException

  Description copied from class: `AbstractTransactionalCommand`
  Implemented by subclasses to perform the model changes. These changes are applied by manipulation of the EMF metamodel's API, not by executing commands on the editing domain's command stack.

  Specified by:
    `doExecuteWithResult` in class `AbstractTransactionalCommand`
  Parameters:
    `monitor` - the progress monitor provided by the operation history
    `info` - the adaptable provided by the operation history
  Returns:
    the result of the execution
  Throws:
    `ExecutionException` - if, for some reason, I fail to complete the operation

### getTargetFeature

    protected org.eclipse.emf.ecore.EReference getTargetFeature(org.eclipse.emf.ecore.EObject element)

  Gets the feature in the target element that should contain `element` after it is moved.

  Looks for the feature first in the elements map. If none is specified, tries to use the same feature that contained the element in its old location. If the old containment feature doesn't exist in the new target, uses the MSL utility to find the first feature in the target that can contain the element being moved.

  Parameters:
    `element` - the element to be moved
  Returns:
    the feature that will contain the element in the target

### getTargetContainer

    protected org.eclipse.emf.ecore.EObject getTargetContainer()

  Gets the target container.

  Returns:
    the target container

### getElementsToMove

    protected java.util.Map getElementsToMove()

  Gets the map of elements to be moved. Each entry in the map consists of an `EObject` key, which is the element to be moved to the new target, and an `EReference` value, which is the feature in the new target that should contain the moved element.

  Returns:
    the map of elements to be moved

### setTargetFeature

    protected void setTargetFeature(org.eclipse.emf.ecore.EObject element,
                                    org.eclipse.emf.ecore.EReference targetFeature)

  Sets the reference feature into which an element should be moved.

  Parameters:
    `element` - the element to be moved
    `targetFeature` - the target feature

### canExecute

    public boolean canExecute()

  Description copied from class: `EditElementCommand`
  Checks that the element to be modified by this command is of the correct kind.

  Specified by:
    `canExecute` in interface `IUndoableOperation`
  Overrides:
    `canExecute` in class `EditElementCommand`

Runtime

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp., Borland Software Corp., and others 2005,2006. All rights reserved.