From 6c46cacd8260f6ccb5c611cf7f8559720c9297d8 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Fri, 27 Feb 2004 21:11:42 +0000 Subject: [PATCH] fixed for https://bugs.eclipse.org/bugs/show_bug.cgi?id=53204 --- .../make/ui/dialogs/BuildPathInfoBlock.java | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java index b7f561c2333..50e7fcf328b 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java @@ -26,6 +26,7 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Preferences; +import org.eclipse.jface.dialogs.IInputValidator; import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.window.Window; import org.eclipse.swt.SWT; @@ -39,6 +40,7 @@ import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; @@ -81,6 +83,34 @@ public class BuildPathInfoBlock extends AbstractCOptionPage { private Button symbolUp; private Button symbolDown; private Shell shell; + + /** + * This class add a "browse" button to the selection to be used for the path + */ + class SelectPathInputDialog extends InputDialog { + public SelectPathInputDialog(Shell parentShell, String dialogTitle, String dialogMessage, String initialValue, IInputValidator validator) { + super(parentShell, dialogTitle, dialogMessage, initialValue, validator); + } + + protected void createButtonsForButtonBar(Composite parent) { + super.createButtonsForButtonBar(parent); + Button browse = createButton(parent, 3, "Browse...", true); + browse.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent ev) { + DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.OPEN); + String currentName = getText().getText(); + if(currentName != null && currentName.trim().length() != 0) { + dialog.setFilterPath(currentName); + } + String dirname = dialog.open(); + if(dirname != null) { + getText().setText(dirname); + } + } + }); + } + + } public BuildPathInfoBlock() { super(MakeUIPlugin.getResourceString(LABEL)); @@ -351,7 +381,7 @@ public class BuildPathInfoBlock extends AbstractCOptionPage { String selItem = pathList.getItem(index); if (selItem != null) { InputDialog dialog = - new InputDialog( + new SelectPathInputDialog( shell, MakeUIPlugin.getResourceString(EDIT_PATH_TITLE), MakeUIPlugin.getResourceString(PATH_LABEL), @@ -489,7 +519,7 @@ public class BuildPathInfoBlock extends AbstractCOptionPage { protected void handleAddPath() { // Popup an entry dialog - InputDialog dialog = new InputDialog(shell, MakeUIPlugin.getResourceString(PATH_TITLE), MakeUIPlugin.getResourceString(PATH_LABEL), "", null); //$NON-NLS-1$ + InputDialog dialog = new SelectPathInputDialog(shell, MakeUIPlugin.getResourceString(PATH_TITLE), MakeUIPlugin.getResourceString(PATH_LABEL), "", null); //$NON-NLS-1$ String path = null; if (dialog.open() == Window.OK) { path = dialog.getValue();