Bug 30382 Incosistent dialog UI when specifying different output locations per source folder
Please see attached image. The dialog says ".. enter a path _RELATIVE_ to 'path/to/sourcefolder'" but the "Browse" dialog generates a path that is relative to sourcefolder parent. It should be clarified, which path will be expected! I suggest removing the current confusing behavior and replace it with a consistent behavior of project relative pathes. I assume a project relative path is stored in the IClasspathEntry anyway.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/OutputLocationDialog.java
import org.eclipse.ui.model.WorkbenchContentProvider;
import org.eclipse.ui.model.WorkbenchLabelProvider;
import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
import org.eclipse.jdt.internal.ui.dialogs.StatusDialog;
import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
import org.eclipse.jdt.internal.ui.util.SWTUtil;
import org.eclipse.jdt.internal.ui.wizards.NewWizardMessages;
import org.eclipse.jdt.internal.ui.wizards.TypedElementSelectionValidator;
import org.eclipse.jdt.internal.ui.wizards.TypedViewerFilter;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.IStringButtonAdapter;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.StringButtonDialogField;
public class OutputLocationDialog extends StatusDialog {
	
	private StringButtonDialogField fContainerDialogField;
	private SelectionButtonDialogField fUseDefault;
	private SelectionButtonDialogField fUseSpecific;
	private StatusInfo fContainerFieldStatus;
	
	private IProject fCurrProject;
	private IPath fOutputLocation;
		
	public OutputLocationDialog(Shell parent, CPListElement entryToEdit) {
		super(parent);
		setTitle(NewWizardMessages.getString("OutputLocationDialog.title"));
		fContainerFieldStatus= new StatusInfo();
	
		OutputLocationAdapter adapter= new OutputLocationAdapter();