package org.rubypeople.rdt.internal.ui.util;
import org.eclipse.core.resources.IProject;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.model.WorkbenchLabelProvider;
import org.rubypeople.rdt.core.RubyCore;
import org.rubypeople.rdt.internal.ui.RubyPlugin;
import org.rubypeople.rdt.internal.ui.dialogs.ElementListSelectionDialog;
public class RubyProjectSelector extends ResourceSelector {
public RubyProjectSelector(Composite parent) {
super(parent);
browseDialogTitle = "Project Selection";
}
public IProject getSelection() {
String projectName = getSelectionText();
if (projectName != null && !projectName.equals(""))
return RubyPlugin.getWorkspace().getRoot().getProject(projectName);
return null;
}
protected void handleBrowseSelected() {
ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(), new WorkbenchLabelProvider());
dialog.setTitle(browseDialogTitle);
dialog.setMessage(browseDialogMessage);
dialog.setElements(RubyCore.getRubyProjects());
if (dialog.open() == Dialog.OK) {
textField.setText(((IProject) dialog.getFirstResult()).getName());
}
}
protected String validateResourceSelection() {
IProject project = getSelection();
return project == null ? EMPTY_STRING : project.getName();
}
}