Bug 164695 [Workbench] Project copy doesn't validate location and uses invalid location as default
Build: I2006114 1) Create a new project whose location is outside the workspace (say c:\temp\p1). 2) Select the project in the Navigator, and Hit Ctrl+C, Ctrl+V. 3) The project copy dialog opens. Accept the default and hit Ok. -> An error occurs because the location overlaps the location of the project being copied. There are two problems here: a) If the project is not in the default location, it should populate the dialog with a new location that is different from the original location (such as c:\temp\Copy of P1). I.e., it should provide reasonable defaults that don't cause the copy to fail. b) The location provided in the dialog should be validated using IWorkspace#validateProjectLocation. The Ok button should be greyed out until a valid location is supplied.
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ProjectLocationSelectionDialog.java
/**
	 * Check if the entries in the widget are valid. If they are return null
	 * otherwise return a string that indicates the problem.
	 */
	private String checkValidName() {
		String name = this.projectNameField.getText();
		IWorkspace workspace = getProject().getWorkspace();
		IStatus nameStatus = workspace.validateName(name, IResource.PROJECT);
		if (!nameStatus.isOK()) {
			return nameStatus.getMessage();
		}
		IProject newProject = workspace.getRoot().getProject(name);
		if (newProject.exists()) {
			return NLS.bind(
					IDEWorkbenchMessages.CopyProjectAction_alreadyExists, name);
		}
		return null;
	}
	/**
	 * The <code>ProjectLocationSelectionDialog</code> implementation of this
	 * <code>SelectionStatusDialog</code> method builds a two element list -
	 * the first element is the project name and the second one is the location.
	 */
	protected void computeResult() {
		ArrayList list = new ArrayList();
		list.add(this.projectNameField.getText());
		list.add(locationArea.getProjectLocation());
		setResult(list);
	}
	/*