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/MoveFilesAndFoldersOperation.java
* 
     * @param resources the resources to move
     * @param destination destination to which resources will be moved
     * @param subMonitor a progress monitor for showing progress and for cancelation
     */
    protected void copy(IResource[] resources, IPath destination,
            IProgressMonitor subMonitor) throws CoreException {
        for (int i = 0; i < resources.length; i++) {
            IResource source = resources[i];
            IPath destinationPath = destination.append(source.getName());
            IWorkspace workspace = source.getWorkspace();
            IWorkspaceRoot workspaceRoot = workspace.getRoot();
            IResource existing = workspaceRoot.findMember(destinationPath);
            if (source.getType() == IResource.FOLDER && existing != null) {
                
                
                if (homogenousResources(source, existing)) {
                    IResource[] children = ((IContainer) source).members();
                    copy(children, destinationPath, subMonitor);
                    delete(source, subMonitor);
                } else {
                    
                     
                    delete(existing, new SubProgressMonitor(subMonitor, 0));
                    source.move(destinationPath, IResource.SHALLOW
                            | IResource.KEEP_HISTORY, new SubProgressMonitor(
                            subMonitor, 0));
                }
            } else {