Package org.eclipse.ui.actions

## Class CopyResourceAction

- java.lang.Object
- - org.eclipse.core.commands.common.EventManager
  - - org.eclipse.jface.action.AbstractAction
    - - org.eclipse.jface.action.Action
      - - org.eclipse.ui.actions.BaseSelectionListenerAction
        - - org.eclipse.ui.actions.SelectionListenerAction
          - - org.eclipse.ui.actions.CopyResourceAction

All Implemented Interfaces:
  `IAction`, `ISelectionChangedListener`, `ISelectionValidator`

Direct Known Subclasses:
  `MoveResourceAction`

    public class CopyResourceAction
    extends SelectionListenerAction
    implements ISelectionValidator

Standard action for copying the currently selected resources elsewhere in the workspace. All resources being copied as a group must be siblings.

This class may be instantiated; it is not intended to be subclassed.

Restriction:
  This class is not intended to be subclassed by clients.

### Field Summary

Fields
`static String` `ID` The id of this action.
`protected CopyFilesAndFoldersOperation` `operation` The operation to run.
`protected IShellProvider` `shellProvider` The IShellProvider in which to show any dialogs.

### Fields inherited from interface org.eclipse.jface.action.IAction

`AS_CHECK_BOX, AS_DROP_DOWN_MENU, AS_PUSH_BUTTON, AS_RADIO_BUTTON, AS_UNSPECIFIED, CHECKED, DESCRIPTION, ENABLED, HANDLED, IMAGE, RESULT, TEXT, TOOL_TIP_TEXT`

### Constructor Summary

Constructors
`CopyResourceAction​(IShellProvider provider)` Creates a new action
`CopyResourceAction​(Shell shell)` Deprecated. `CopyResourceAction(IShellProvider)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`protected CopyFilesAndFoldersOperation` `createOperation()` Returns the operation to perform when this action runs.
`String[]` `getModelProviderIds()` Returns the model provider ids that are known to the client that instantiated this operation.
`static IPath` `getNewNameFor​(IPath originalName, IWorkspace workspace)` Returns a new name for a copy of the resource at the given path in the given workspace.
`protected IResource[]` `getResources​(List<? extends IResource> resourceList)` Returns an array of resources to use for the operation from the provided list.
`String` `isValid​(Object destination)` The `CopyResourceAction` implementation of this `ISelectionValidator` method checks whether the given path is a good place to copy the selected resources.
`void` `run()` The default implementation of this `IAction` method does nothing.
`protected void` `runOperation​(IResource[] resources, IContainer destination)` Runs the operation created in `createOperation`
`void` `setModelProviderIds​(String[] modelProviderIds)` Sets the model provider ids that are known to the client that instantiated this operation.
`protected boolean` `updateSelection​(IStructuredSelection selection)` The `CopyResourceAction` implementation of this `SelectionListenerAction` method enables this action only if all of the one or more selections are sibling resources which are local (depth infinity).

### Methods inherited from class org.eclipse.ui.actions.SelectionListenerAction

`clearCache, getSelectedNonResources, getSelectedResources, resourceIsType, selectionIsOfType`

### Methods inherited from class org.eclipse.ui.actions.BaseSelectionListenerAction

`getStructuredSelection, runWithEvent, selectionChanged, selectionChanged`

### Methods inherited from class org.eclipse.jface.action.Action

`convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, getAccelerator, getActionDefinitionId, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getId, getImageDescriptor, getMenuCreator, getStyle, getText, getToolTipText, isChecked, isEnabled, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, setAccelerator, setActionDefinitionId, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setId, setImageDescriptor, setMenuCreator, setText, setToolTipText`

### Methods inherited from class org.eclipse.jface.action.AbstractAction

`addPropertyChangeListener, firePropertyChange, firePropertyChange, removePropertyChangeListener`

### Methods inherited from class org.eclipse.core.commands.common.EventManager

`addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### ID

    public static final String ID

The id of this action.

See Also:
  Constant Field Values

#### shellProvider

    protected IShellProvider shellProvider

The IShellProvider in which to show any dialogs.

#### operation

    protected CopyFilesAndFoldersOperation operation

The operation to run. This is created only during the life-cycle of the run method.

### Constructor Detail

#### CopyResourceAction

    @Deprecated
    public CopyResourceAction​(Shell shell)

Deprecated.
`CopyResourceAction(IShellProvider)`
Creates a new action.

Parameters:
  `shell` - the shell for any dialogs

#### CopyResourceAction

    public CopyResourceAction​(IShellProvider provider)

Creates a new action

Parameters:
  `provider` - the shell for any dialogs
Since:
  3.4

### Method Detail

#### getNewNameFor

    public static IPath getNewNameFor​(IPath originalName,
                                      IWorkspace workspace)

Returns a new name for a copy of the resource at the given path in the given workspace. This name could be determined either automatically or by querying the user. This name will not be verified by the caller, so it must be valid and unique.

Note this method is for internal use only.

Parameters:
  `originalName` - the full path of the resource
  `workspace` - the workspace
Returns:
  the new full path for the copy, or `null` if the resource should not be copied

#### createOperation

    protected CopyFilesAndFoldersOperation createOperation()

Returns the operation to perform when this action runs.

Returns:
  the operation to perform when this action runs.

#### getResources

    protected IResource[] getResources​(List<? extends IResource> resourceList)

Returns an array of resources to use for the operation from the provided list.

Parameters:
  `resourceList` - The list of resources to converted into an array.
Returns:
  an array of resources to use for the operation

#### isValid

    public String isValid​(Object destination)

The `CopyResourceAction` implementation of this `ISelectionValidator` method checks whether the given path is a good place to copy the selected resources.

Specified by:
  `isValid` in interface `ISelectionValidator`
Parameters:
  `destination` - the selection to be validated
Returns:
  the error message, or `null` indicating that the value is valid

#### run

    public void run()

Description copied from class: `Action`
The default implementation of this `IAction` method does nothing. Subclasses should override this method if they do not need information from the triggering event, or override `runWithEvent(Event)` if they do.

Specified by:
  `run` in interface `IAction`
Overrides:
  `run` in class `Action`
See Also:
  `How radio buttons are handled`, `How check boxes are handled`

#### runOperation

    protected void runOperation​(IResource[] resources,
                                IContainer destination)

Runs the operation created in `createOperation`

Parameters:
  `resources` - source resources to pass to the operation
  `destination` - destination container to pass to the operation

#### updateSelection

    protected boolean updateSelection​(IStructuredSelection selection)

The `CopyResourceAction` implementation of this `SelectionListenerAction` method enables this action only if all of the one or more selections are sibling resources which are local (depth infinity).

Overrides:
  `updateSelection` in class `BaseSelectionListenerAction`
Parameters:
  `selection` - the new selection
Returns:
  `true` if the action should be enabled for this selection, and `false` otherwise

#### getModelProviderIds

    public String[] getModelProviderIds()

Returns the model provider ids that are known to the client that instantiated this operation.

Returns:
  the model provider ids that are known to the client that instantiated this operation.
Since:
  3.2

#### setModelProviderIds

    public void setModelProviderIds​(String[] modelProviderIds)

Sets the model provider ids that are known to the client that instantiated this operation. Any potential side effects reported by these models during validation will be ignored.

Parameters:
  `modelProviderIds` - the model providers known to the client who is using this operation.
Since:
  3.2