Bug 3926 issue copying file with duplicate name (1GF60YK)
I tried to copy a package.html file from one package to another using the "copy" menu entry in the packages view. The destination package already had a file called package.html so I was presented with a "Duplicate names" dialog. The dialog has two radio buttons, one for "replace element" and one for "rename to". Issues: - The replace button is grayed out - "Rename to" is ambiguous. Am I renaming the thing being copied or the file already at the destination. Since I actually wanted to overwrite the file and the rename renames the file being copied, I could not accomplish the task. Note that the copy action from the navigator works as desired. NOTES: KH (6/12/2001 7:11:31 AM) Moving to JUI for comment.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/reorg/ReorgDestinationAction.java
}
	
	private static void setUnsavedFileList(ReorgRefactoring refactoring, List elements){
		List unsavedEditors= new ArrayList(0);
		collectUnsavedEditors(elements, unsavedEditors, new ArrayList(0));
		refactoring.setUnsavedFiles(getFiles(unsavedEditors));
	}
	private static IFile[] getFiles(List editorParts){
		List result= new ArrayList(editorParts.size());
		for (Iterator iter= editorParts.iterator(); iter.hasNext(); ){
			IEditorPart each= (IEditorPart)iter.next();
			IEditorInput input= each.getEditorInput();
			if (input instanceof IFileEditorInput)
				result.add(((IFileEditorInput)input).getFile());
		}
		return (IFile[]) result.toArray(new IFile[result.size()]);
	}
	private static IRunnableWithProgress createSaveEditorOperation(final Object[] elementsToSave, final IEditorPart[] unsavedEditors) {
		return new IRunnableWithProgress() {
			public void run(IProgressMonitor pm) {
				pm.beginTask(ReorgMessages.getString("ReorgAction.task.saving"), elementsToSave.length); 
				for (int i= 0; i < elementsToSave.length; i++) {
					IEditorPart editor= findEditor(elementsToSave[i], unsavedEditors);
					if (editor != null)
						editor.doSave(new SubProgressMonitor(pm, 1));
					else
						pm.worked(1);
				}
				pm.done();
			}