Eclipse Platform
Release 3.3

org.eclipse.ui.actions
Class CopyFilesAndFoldersOperation

java.lang.Object
  extended byorg.eclipse.ui.actions.CopyFilesAndFoldersOperation
Direct Known Subclasses:
MoveFilesAndFoldersOperation

public class CopyFilesAndFoldersOperation
extends Object

Perform the copy of file and folder resources from the clipboard when paste action is invoked.

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


Constructor Summary
CopyFilesAndFoldersOperation(Shell shell)
          Creates a new operation initialized with a shell.
 
Method Summary
protected  boolean canPerformAutoRename()
          Returns whether this operation is able to perform on-the-fly auto-renaming of resources with name collisions.
protected  void copy(IResource[] resources, IPath destination, IProgressMonitor subMonitor)
          Deprecated. As of 3.3, the work is performed in the undoable operation created in getUndoableCopyOrMoveOperation(IResource[], IPath)
 void copyFiles(String[] fileNames, IContainer destination)
          Copies the given files and folders to the destination.
 void copyFiles(URI[] uris, IContainer destination)
          Copies the given URIS and folders to the destination.
 void copyFilesInCurrentThread(String[] fileNames, IContainer destination, IProgressMonitor monitor)
          Copies the given files and folders to the destination without forking a new Thread or blocking using a WorkspaceModifyOperation.
 void copyFilesInCurrentThread(URI[] uris, IContainer destination, IProgressMonitor monitor)
          Copies the given files and folders to the destination without forking a new Thread or blocking using a WorkspaceModifyOperation.
 IResource[] copyResources(IResource[] resources, IContainer destination)
          Copies the given resources to the destination.
 IResource[] copyResourcesInCurrentThread(IResource[] resources, IContainer destination, IProgressMonitor monitor)
          Copies the given resources to the destination in the current Thread without forking a new Thread or blocking using a WorkspaceModifyOperation.
protected  String getDeepCheckQuestion(IResource source)
          Returns the message for querying deep copy/move of a linked resource.
protected  IFile getFile(IResource resource)
          Returns the resource either casted to or adapted to an IFile.
protected  File[] getFiles(String[] fileNames)
          Deprecated. As of 3.3, this method is no longer in use anywhere in this class and is only provided for backwards compatability with subclasses of the receiver.
protected  IFolder getFolder(IResource resource)
          Returns the resource either casted to or adapted to an IFolder.
 String[] getModelProviderIds()
          Returns the model provider ids that are known to the client that instantiated this operation.
protected  String getOperationTitle()
          Returns the task title for this operation's progress dialog.
protected  String getProblemsMessage()
          Returns the message for this operation's problems dialog.
protected  String getProblemsTitle()
          Returns the title for this operation's problems dialog.
protected  AbstractWorkspaceOperation getUndoableCopyOrMoveOperation(IResource[] resources, IPath destinationPath)
          Returns an AbstractWorkspaceOperation suitable for performing the move or copy operation that will move or copy the given resources to the given destination path.
protected  boolean getValidateConflictSource()
          Returns whether the source file in a destination collision will be validateEdited together with the collision itself.
protected  boolean homogenousResources(IResource source, IResource destination)
          Returns whether the given resources are either both linked or both unlinked.
protected  boolean isMove()
          Return whether the operation is a move or a copy
 void setModelProviderIds(String[] modelProviderIds)
          Sets the model provider ids that are known to the client that instantiated this operation.
 String validateDestination(IContainer destination, IResource[] sourceResources)
          Checks whether the destination is valid for copying the source resources.
 String validateImportDestination(IContainer destination, String[] sourceNames)
          Checks whether the destination is valid for copying the source files.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CopyFilesAndFoldersOperation

public CopyFilesAndFoldersOperation(Shell shell)
Creates a new operation initialized with a shell.

Parameters:
shell - parent shell for error dialogs
Method Detail

canPerformAutoRename

protected boolean canPerformAutoRename()
Returns whether this operation is able to perform on-the-fly auto-renaming of resources with name collisions.

Returns:
true if auto-rename is supported, and false otherwise

getDeepCheckQuestion

protected String getDeepCheckQuestion(IResource source)
Returns the message for querying deep copy/move of a linked resource.

Parameters:
source - resource the query is made for
Returns:
the deep query message

copy

protected void copy(IResource[] resources,
                    IPath destination,
                    IProgressMonitor subMonitor)
             throws CoreException
Deprecated. As of 3.3, the work is performed in the undoable operation created in getUndoableCopyOrMoveOperation(IResource[], IPath)

Copies the resources to the given destination. This method is called recursively to merge folders during folder copy.

Parameters:
resources - the resources to copy
destination - destination to which resources will be copied
subMonitor - a progress monitor for showing progress and for cancelation
Throws:
CoreException

copyResources

public IResource[] copyResources(IResource[] resources,
                                 IContainer destination)
Copies the given resources to the destination. The current Thread is halted while the resources are copied using a WorkspaceModifyOperation. This method should be called from the UIThread.

Parameters:
resources - the resources to copy
destination - destination to which resources will be copied
Returns:
IResource[] the resulting IResource[]
See Also:
WorkspaceModifyOperation, Display.getThread(), Thread.currentThread()

copyResourcesInCurrentThread

public IResource[] copyResourcesInCurrentThread(IResource[] resources,
                                                IContainer destination,
                                                IProgressMonitor monitor)
Copies the given resources to the destination in the current Thread without forking a new Thread or blocking using a WorkspaceModifyOperation. It recommended that this method only be called from a WorkspaceJob to avoid possible deadlock.

Parameters:
resources - the resources to copy
destination - destination to which resources will be copied
monitor - the monitor that information will be sent to.
Returns:
IResource[] the resulting IResource[]
Since:
3.2
See Also:
WorkspaceModifyOperation, WorkspaceJob

isMove

protected boolean isMove()
Return whether the operation is a move or a copy

Returns:
whether the operation is a move or a copy
Since:
3.2

copyFiles

public void copyFiles(URI[] uris,
                      IContainer destination)
Copies the given URIS and folders to the destination. The current Thread is halted while the resources are copied using a WorkspaceModifyOperation. This method should be called from the UI Thread.

Parameters:
uris - the URIs to copy
destination - destination to which files will be copied
Since:
3.2
See Also:
WorkspaceModifyOperation, Display.getThread(), Thread.currentThread()

copyFilesInCurrentThread

public void copyFilesInCurrentThread(URI[] uris,
                                     IContainer destination,
                                     IProgressMonitor monitor)
Copies the given files and folders to the destination without forking a new Thread or blocking using a WorkspaceModifyOperation. It is recommended that this method only be called from a WorkspaceJob to avoid possible deadlock.

Parameters:
uris - the URIs to copy
destination - destination to which URIS will be copied
monitor - the monitor that information will be sent to.
Since:
3.2
See Also:
WorkspaceModifyOperation, WorkspaceJob

copyFiles

public void copyFiles(String[] fileNames,
                      IContainer destination)
Copies the given files and folders to the destination. The current Thread is halted while the resources are copied using a WorkspaceModifyOperation. This method should be called from the UI Thread.

Parameters:
fileNames - names of the files to copy
destination - destination to which files will be copied
Since:
3.2
See Also:
WorkspaceModifyOperation, Display.getThread(), Thread.currentThread()

copyFilesInCurrentThread

public void copyFilesInCurrentThread(String[] fileNames,
                                     IContainer destination,
                                     IProgressMonitor monitor)
Copies the given files and folders to the destination without forking a new Thread or blocking using a WorkspaceModifyOperation. It is recommended that this method only be called from a WorkspaceJob to avoid possible deadlock.

Parameters:
fileNames - names of the files to copy
destination - destination to which files will be copied
monitor - the monitor that information will be sent to.
Since:
3.2
See Also:
WorkspaceModifyOperation, WorkspaceJob

getFile

protected IFile getFile(IResource resource)
Returns the resource either casted to or adapted to an IFile.

Parameters:
resource - resource to cast/adapt
Returns:
the resource either casted to or adapted to an IFile. null if the resource does not adapt to IFile

getFiles

protected File[] getFiles(String[] fileNames)
Deprecated. As of 3.3, this method is no longer in use anywhere in this class and is only provided for backwards compatability with subclasses of the receiver.

Returns java.io.File objects for the given file names.

Parameters:
fileNames - files to return File object for.
Returns:
java.io.File objects for the given file names.

getFolder

protected IFolder getFolder(IResource resource)
Returns the resource either casted to or adapted to an IFolder.

Parameters:
resource - resource to cast/adapt
Returns:
the resource either casted to or adapted to an IFolder. null if the resource does not adapt to IFolder

getOperationTitle

protected String getOperationTitle()
Returns the task title for this operation's progress dialog.

Returns:
the task title

getProblemsMessage

protected String getProblemsMessage()
Returns the message for this operation's problems dialog.

Returns:
the problems message

getProblemsTitle

protected String getProblemsTitle()
Returns the title for this operation's problems dialog.

Returns:
the problems dialog title

getValidateConflictSource

protected boolean getValidateConflictSource()
Returns whether the source file in a destination collision will be validateEdited together with the collision itself. Returns false. Should return true if the source file is to be deleted after the operation.

Returns:
boolean true if the source file in a destination collision should be validateEdited. false if only the destination should be validated.

homogenousResources

protected boolean homogenousResources(IResource source,
                                      IResource destination)
Returns whether the given resources are either both linked or both unlinked.

Parameters:
source - source resource
destination - destination resource
Returns:
boolean true if both resources are either linked or unlinked. false otherwise.

validateDestination

public String validateDestination(IContainer destination,
                                  IResource[] sourceResources)
Checks whether the destination is valid for copying the source resources.

Note this method is for internal use only. It is not API.

Parameters:
destination - the destination container
sourceResources - the source resources
Returns:
an error message, or null if the path is valid

validateImportDestination

public String validateImportDestination(IContainer destination,
                                        String[] sourceNames)
Checks whether the destination is valid for copying the source files.

Note this method is for internal use only. It is not API.

Parameters:
destination - the destination container
sourceNames - the source file names
Returns:
an error message, or null if the path is valid

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

getUndoableCopyOrMoveOperation

protected AbstractWorkspaceOperation getUndoableCopyOrMoveOperation(IResource[] resources,
                                                                    IPath destinationPath)
Returns an AbstractWorkspaceOperation suitable for performing the move or copy operation that will move or copy the given resources to the given destination path.

Parameters:
resources - the resources to be moved or copied
destinationPath - the destination path to which the resources should be moved
Returns:
the operation that should be used to perform the move or cop
Since:
3.3

Eclipse Platform
Release 3.3

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2007. All rights reserved.