|
|
|
|
org.eclipse.ui.ide.undo
Class CopyResourcesOperation
java.lang.Object
org.eclipse.core.commands.operations.AbstractOperation
org.eclipse.ui.ide.undo.AbstractWorkspaceOperation
org.eclipse.ui.ide.undo.CopyResourcesOperation
-
All Implemented Interfaces:
-
IAdvancedUndoableOperation,
IAdvancedUndoableOperation2,
IUndoableOperation
-
public class CopyResourcesOperation
- extends
AbstractWorkspaceOperation
A CopyResourcesOperation represents an undoable operation for copying one or
more resources in the workspace. Clients may call the public API from a
background thread.
This operation can track any overwritten resources and restore them when the
copy is undone. It is up to clients to determine whether overwrites are
allowed. If a resource should not be overwritten, it should not be included
in this operation. In addition to checking for overwrites, the target
location for the copy is assumed to have already been validated by the
client. It will not be revalidated on undo and redo.
This class is intended to be instantiated and used by clients. It is not
intended to be subclassed by clients.
-
Since:
- 3.3
Method Summary
|
protected void
|
appendDescriptiveText
(
StringBuffer text)
Append any descriptive text to the specified string buffer to be shown in
the receiver's
AbstractWorkspaceOperation.toString() text. |
protected
ISchedulingRule
|
computeCreateSchedulingRule
()
Compute a scheduling rule for creating resources. |
protected
IStatus
|
computeCreateStatus
(boolean allowOverwrite)
Compute the status for creating resources from the descriptions. |
protected
ISchedulingRule
|
computeDeleteSchedulingRule
()
Compute a scheduling rule for deleting resources. |
protected
IStatus
|
computeDeleteStatus
()
Compute the status for deleting resources. |
IStatus
|
computeExecutionStatus
(
IProgressMonitor monitor)
Return a status indicating the projected outcome of executing the
receiver. |
protected
IStatus
|
computeMoveOrCopyStatus
()
Compute the status for moving or copying the resources. |
IStatus
|
computeRedoableStatus
(
IProgressMonitor monitor)
Return a status indicating the projected outcome of redoing the receiver. |
IStatus
|
computeUndoableStatus
(
IProgressMonitor monitor)
Return a status indicating the projected outcome of undoing the receiver. |
protected void
|
copy
(
IProgressMonitor monitor,
IAdaptable uiInfo)
Move or copy any known resources according to the destination parameters
known by this operation. |
protected void
|
delete
(
IProgressMonitor monitor,
IAdaptable uiInfo,
boolean deleteContent)
Delete any resources known by this operation. |
protected void
|
doExecute
(
IProgressMonitor monitor,
IAdaptable uiInfo)
Perform the specific work involved in executing this operation. |
protected void
|
doUndo
(
IProgressMonitor monitor,
IAdaptable uiInfo)
Perform the specific work involved in undoing this operation. |
protected
IPath
|
getDestinationPath
(
IResource resource,
int index)
Return the destination path that should be used to move or copy the
specified resource. |
protected
String
|
getProposedName
(
IResource resource,
int index)
Return a string indicating the proposed name for the resource |
protected boolean
|
isDestinationPathValid
(
IResource resource,
int index)
Return a boolean indicating whether the proposed destination path for a
resource is valid. |
protected void
|
recreate
(
IProgressMonitor monitor,
IAdaptable uiInfo)
Recreate any resources known by this operation. |
protected void
|
setResourceDescriptions
(
ResourceDescription[] descriptions)
Set the array of resource descriptions describing resources to be
restored when undoing or redoing this operation. |
protected void
|
setTargetResources
(
IResource[] targetResources)
Set the resources which are affected by this operation |
protected boolean
|
updateResourceChangeDescriptionFactory
(
IResourceChangeDescriptionFactory factory,
int operation)
Update the provided resource change description factory so it can
generate a resource delta describing the result of an undo or redo. |
Methods inherited from class org.eclipse.ui.ide.undo.
AbstractWorkspaceOperation
|
aboutToNotify,
canExecute,
canRedo,
canUndo,
execute,
getAffectedObjects,
getErrorStatus,
getExecuteSchedulingRule,
getRedoSchedulingRule,
getShell,
getUndoSchedulingRule,
getWarningStatus,
getWorkspace,
getWorkspaceRuleFactory,
isValid,
markInvalid,
redo,
resourcesExist,
resourcesIncludesProjects,
runInBackground,
setModelProviderIds,
setQuietCompute,
toString,
undo
|
destinationPaths
protected
IPath[] destinationPaths
destination
protected
IPath destination
resourceDescriptions
protected
ResourceDescription[] resourceDescriptions
CopyResourcesOperation
public CopyResourcesOperation(
IResource resource,
IPath newPath,
String label)
- Create a CopyResourcesOperation that copies a single resource to a new
location. The new location includes the name of the copy.
-
Parameters:
-
resource - the resource to be copied -
newPath - the new workspace-relative path for the copy, including its
desired name. -
label - the label of the operation
CopyResourcesOperation
public CopyResourcesOperation(
IResource[] resources,
IPath destinationPath,
String label)
- Create a CopyResourcesOperation that copies all of the specified
resources to a single target location. The original resource name will be
used when copied to the new location.
-
Parameters:
-
resources - the resources to be copied -
destinationPath - the workspace-relative destination path for the copied
resource. -
label - the label of the operation
CopyResourcesOperation
public CopyResourcesOperation(
IResource[] resources,
IPath[] destinationPaths,
String label)
- Create a CopyResourcesOperation that copies each of the specified
resources to its corresponding destination path in the destination path
array. The resource name for the target is included in the corresponding
destination path.
-
Parameters:
-
resources - the resources to be copied. Must not contain null resources. -
destinationPaths - a workspace-relative destination path for each copied
resource, which includes the name of the resource at the new
destination. Must be the same length as the resources array,
and may not contain null paths. -
label - the label of the operation
doExecute
protected void doExecute(
IProgressMonitor monitor,
IAdaptable uiInfo)
throws
CoreException
-
Description copied from class:
AbstractWorkspaceOperation
- Perform the specific work involved in executing this operation.
-
-
Specified by:
-
doExecute
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to use for the operation -
uiInfo - the IAdaptable (or null ) provided by the
caller in order to supply UI information for prompting the
user if necessary. When this parameter is not
null , it contains an adapter for the
org.eclipse.swt.widgets.Shell.class
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
copy
protected void copy(
IProgressMonitor monitor,
IAdaptable uiInfo)
throws
CoreException
- Move or copy any known resources according to the destination parameters
known by this operation. Store enough information to undo and redo the
operation.
-
-
Parameters:
-
monitor - the progress monitor to use for the operation -
uiInfo - the IAdaptable (or null ) provided by the
caller in order to supply UI information for prompting the
user if necessary. When this parameter is not
null , it contains an adapter for the
org.eclipse.swt.widgets.Shell.class
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
doUndo
protected void doUndo(
IProgressMonitor monitor,
IAdaptable uiInfo)
throws
CoreException
-
Description copied from class:
AbstractWorkspaceOperation
- Perform the specific work involved in undoing this operation.
-
-
Specified by:
-
doUndo
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to use for the operation -
uiInfo - the IAdaptable (or null ) provided by the
caller in order to supply UI information for prompting the
user if necessary. When this parameter is not
null , it contains an adapter for the
org.eclipse.swt.widgets.Shell.class
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
updateResourceChangeDescriptionFactory
protected boolean updateResourceChangeDescriptionFactory(
IResourceChangeDescriptionFactory factory,
int operation)
-
Description copied from class:
AbstractWorkspaceOperation
- Update the provided resource change description factory so it can
generate a resource delta describing the result of an undo or redo.
Return a boolean indicating whether any update was done. The default
implementation does not update the factory. Subclasses are expected to
override this method to more specifically describe their modifications to
the workspace.
-
-
Overrides:
-
updateResourceChangeDescriptionFactory
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
factory - the factory to update -
operation - an integer indicating whether the change is part of an
execute, undo, or redo
-
Returns:
- a boolean indicating whether the factory was updated.
computeUndoableStatus
public
IStatus computeUndoableStatus(
IProgressMonitor monitor)
-
Description copied from class:
AbstractWorkspaceOperation
- Return a status indicating the projected outcome of undoing the receiver.
This method is not called by the operation history, but instead is used
by clients (such as implementers of
IOperationApprover2 ) who
wish to perform advanced validation of an operation before attempting to
undo it.
If an ERROR status is returned, the undo will not proceed and the user
notified if deemed necessary by the caller. The validity flag on the
operation should be marked as invalid. If an OK status is returned, the
undo will proceed. The caller must interpret any other returned status
severity, and may choose to prompt the user as to how to proceed.
If there are multiple conditions that result in an ambiguous status
severity, it is best for the implementor of this method to consult the
user as to how to proceed for each one, and return an OK or ERROR status
that accurately reflects the user's wishes, or to return a multi-status
that accurately describes all of the issues at hand, so that the caller
may potentially consult the user. (Note that the user should not be
consulted at all if a client has called
AbstractWorkspaceOperation.setQuietCompute(boolean)
with a value of true .)
This implementation computes the validity of undo by computing the
resource delta that would be generated on undo, and checking whether any
registered model providers are affected by the operation.
-
-
Specified by:
-
computeUndoableStatus
in interface
IAdvancedUndoableOperation
-
Overrides:
-
computeUndoableStatus
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to be used for computing the status
-
Returns:
- the status indicating the projected outcome of undoing the
receiver
-
See Also:
-
IAdvancedUndoableOperation.computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor) ,
AbstractWorkspaceOperation.setQuietCompute(boolean)
computeMoveOrCopyStatus
protected
IStatus computeMoveOrCopyStatus()
- Compute the status for moving or copying the resources. A status severity
of
OK indicates that the copy or move is likely to be
successful. A status severity of ERROR indicates that the
operation is no longer valid. Other status severities are open to
interpretation by the caller.
Note this method may be called on initial moving or copying of a
resource, or when a move or copy is undone or redone. Therefore, this
method should check conditions that can change over the life of the
operation, such as whether the file to moved or copied exists, and
whether the target location is still valid. One-time static checks should
typically be done by the caller so that the user is not continually
prompted or warned about conditions that were acceptable at the time of
original execution and do not change over time.
-
-
Returns:
- the status indicating the projected outcome of moving or copying
the resources.
getDestinationPath
protected
IPath getDestinationPath(
IResource resource,
int index)
- Return the destination path that should be used to move or copy the
specified resource. This path is relative to the workspace.
-
-
Parameters:
-
resource - the resource being moved or copied -
index - the integer index of the resource in the resource array
-
Returns:
- the path specifying the destination for the resource
appendDescriptiveText
protected void appendDescriptiveText(
StringBuffer text)
-
Description copied from class:
AbstractWorkspaceOperation
- Append any descriptive text to the specified string buffer to be shown in
the receiver's
AbstractWorkspaceOperation.toString() text.
Note that this method is not intend to be subclassed by clients.
-
-
-
Parameters:
-
text - the StringBuffer on which to append the text
isDestinationPathValid
protected boolean isDestinationPathValid(
IResource resource,
int index)
- Return a boolean indicating whether the proposed destination path for a
resource is valid.
-
-
Parameters:
-
resource - the resource whose path is to be checked -
index - the integer index of the resource in the resource array
-
Returns:
- a boolean indicating whether the destination path is valid
getProposedName
protected
String getProposedName(
IResource resource,
int index)
- Return a string indicating the proposed name for the resource
-
-
Parameters:
-
resource - the resource whose path is to be checked -
index - the integer index of the resource in the resource array
-
Returns:
- the string name of the resource
computeExecutionStatus
public
IStatus computeExecutionStatus(
IProgressMonitor monitor)
-
Description copied from class:
AbstractWorkspaceOperation
- Return a status indicating the projected outcome of executing the
receiver. This method is not called by the operation history, but instead
is used by clients (such as implementers of
IOperationApprover2 ) who
wish to perform advanced validation of an operation before attempting to
execute it.
If an ERROR status is returned, the operation will not proceed and the
user notified if deemed necessary by the caller. The validity flag on the
operation should be marked as invalid. If an OK status is returned, the
operation will proceed. The caller must interpret any other returned
status severity, and may choose to prompt the user as to how to proceed.
If there are multiple conditions that result in an ambiguous status
severity, it is best for the implementor of this method to consult the
user as to how to proceed for each one, and return an OK or ERROR status
that accurately reflects the user's wishes, or to return a multi-status
that accurately describes all of the issues at hand, so that the caller
may potentially consult the user. (Note that the user should not be
consulted at all if a client has called
AbstractWorkspaceOperation.setQuietCompute(boolean)
with a value of true .)
This implementation computes the validity of execution by computing the
resource delta that would be generated on execution, and checking whether
any registered model providers are affected by the operation.
-
-
Specified by:
-
computeExecutionStatus
in interface
IAdvancedUndoableOperation2
-
Overrides:
-
computeExecutionStatus
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to be used for computing the status
-
Returns:
- the status indicating the projected outcome of executing the
receiver
-
See Also:
-
IAdvancedUndoableOperation.computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor) ,
AbstractWorkspaceOperation.setQuietCompute(boolean)
computeRedoableStatus
public
IStatus computeRedoableStatus(
IProgressMonitor monitor)
-
Description copied from class:
AbstractWorkspaceOperation
- Return a status indicating the projected outcome of redoing the receiver.
This method is not called by the operation history, but instead is used
by clients (such as implementers of
IOperationApprover2 ) who
wish to perform advanced validation of an operation before attempting to
redo it.
If an ERROR status is returned, the redo will not proceed and the user
notified if deemed necessary by the caller. The validity flag on the
operation should be marked as invalid. If an OK status is returned, the
redo will proceed. The caller must interpret any other returned status
severity, and may choose to prompt the user as to how to proceed.
If there are multiple conditions that result in an ambiguous status
severity, it is best for the implementor of this method to consult the
user as to how to proceed for each one, and return an OK or ERROR status
that accurately reflects the user's wishes, or to return a multi-status
that accurately describes all of the issues at hand, so that the caller
may potentially consult the user. (Note that the user should not be
consulted at all if a client has called
AbstractWorkspaceOperation.setQuietCompute(boolean)
with a value of true .)
This implementation computes the validity of redo by computing the
resource delta that would be generated on redo, and checking whether any
registered model providers are affected by the operation.
-
-
Specified by:
-
computeRedoableStatus
in interface
IAdvancedUndoableOperation
-
Overrides:
-
computeRedoableStatus
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to be used for computing the status
-
Returns:
- the status indicating the projected outcome of redoing the
receiver
-
See Also:
-
IAdvancedUndoableOperation.computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor) ,
AbstractWorkspaceOperation.setQuietCompute(boolean)
delete
protected void delete(
IProgressMonitor monitor,
IAdaptable uiInfo,
boolean deleteContent)
throws
CoreException
- Delete any resources known by this operation. Store enough information to
undo and redo the operation.
-
-
Parameters:
-
monitor - the progress monitor to use for the operation -
uiInfo - the IAdaptable (or null ) provided by the
caller in order to supply UI information for prompting the
user if necessary. When this parameter is not
null , it contains an adapter for the
org.eclipse.swt.widgets.Shell.class -
deleteContent - true if the content of any known projects
should be deleted along with the project. false
if project content should not be deleted.
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
recreate
protected void recreate(
IProgressMonitor monitor,
IAdaptable uiInfo)
throws
CoreException
- Recreate any resources known by this operation. Store enough information
to undo and redo the operation.
-
-
Parameters:
-
monitor - the progress monitor to use for the operation -
uiInfo - the IAdaptable (or null ) provided by the
caller in order to supply UI information for prompting the
user if necessary. When this parameter is not
null , it contains an adapter for the
org.eclipse.swt.widgets.Shell.class
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
computeCreateStatus
protected
IStatus computeCreateStatus(boolean allowOverwrite)
- Compute the status for creating resources from the descriptions. A status
severity of
OK indicates that the create is likely to be
successful. A status severity of ERROR indicates that the
operation is no longer valid. Other status severities are open to
interpretation by the caller.
Note this method may be called on initial creation of a resource, or when
a create or delete operation is being undone or redone. Therefore, this
method should check conditions that can change over the life of the
operation, such as the existence of the information needed to carry out
the operation. One-time static checks should typically be done by the
caller (such as the action that creates the operation) so that the user
is not continually prompted or warned about conditions that were
acceptable at the time of original execution.
-
-
Parameters:
-
allowOverwrite - a boolean that specifies whether resource creation should be
allowed to overwrite an existent resource.
computeDeleteStatus
protected
IStatus computeDeleteStatus()
- Compute the status for deleting resources. A status severity of
OK indicates that the delete is likely to be successful. A
status severity of ERROR indicates that the operation is
no longer valid. Other status severities are open to interpretation by
the caller.
Note this method may be called on initial deletion of a resource, or when
a create or delete operation is being undone or redone. Therefore, this
method should check conditions that can change over the life of the
operation, such as the existence of the resources to be deleted. One-time
static checks should typically be done by the caller (such as the action
that creates the operation) so that the user is not continually prompted
or warned about conditions that were acceptable at the time of original
execution.
-
setResourceDescriptions
protected void setResourceDescriptions(
ResourceDescription[] descriptions)
- Set the array of resource descriptions describing resources to be
restored when undoing or redoing this operation.
-
-
Parameters:
-
descriptions - the array of resource descriptions
computeCreateSchedulingRule
protected
ISchedulingRule computeCreateSchedulingRule()
- Compute a scheduling rule for creating resources.
-
-
Returns:
- a scheduling rule appropriate for creating the resources
specified in the resource descriptions
computeDeleteSchedulingRule
protected
ISchedulingRule computeDeleteSchedulingRule()
- Compute a scheduling rule for deleting resources.
-
-
Returns:
- a scheduling rule appropriate for deleting the resources
specified in the receiver.
setTargetResources
protected void setTargetResources(
IResource[] targetResources)
-
Description copied from class:
AbstractWorkspaceOperation
- Set the resources which are affected by this operation
-
-
Overrides:
-
setTargetResources
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
targetResources - an array of resources
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.
|
|
|