Bug 123496 [IDE] Use operation validation API for IDE actions
We should use the Resources/Core operation validation API in the IDE actions for manipulating resources.
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java
if (errorStatus != null) {
            ErrorDialog.openError(parentShell, IDEWorkbenchMessages.CopyProjectOperation_copyFailedTitle,
                    null, errorStatus);
            errorStatus = null;
        }
    }
    /**
     * Copies the project to the new values.
     *
     * @param project the project to copy
     * @param projectName the name of the copy
     * @param newLocation IPath
     * @return <code>true</code> if the copy operation completed, and 
     *   <code>false</code> if it was abandoned part way
     */
    private boolean performProjectCopy(final IProject project,
            final String projectName, final IPath newLocation) {
        WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
            public void execute(IProgressMonitor monitor) {
                try {
                    if (monitor.isCanceled())
                        throw new OperationCanceledException();
                    
                    monitor.setTaskName(IDEWorkbenchMessages.CopyProjectOperation_progressTitle);
                    
                    
                    IProjectDescription newDescription = createProjectDescription(
                            project, projectName, newLocation);
                    project.copy(newDescription, IResource.SHALLOW
                            | IResource.FORCE, monitor);