/**
* Copyright (c) Red Hat, Inc., contributors and others 2013 - 2014. All rights reserved
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.tools.forge.ui.internal.ext.control;
import java.io.File;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Text;
import org.jboss.forge.addon.ui.hints.InputType;
import org.jboss.forge.addon.ui.input.InputComponent;
import org.jboss.forge.addon.ui.input.UIInput;
import org.jboss.tools.forge.ui.internal.ext.wizards.ForgeWizardPage;
public class DirectoryChooserControlBuilder extends AbstractTextButtonControl {
@Override
protected void browseButtonPressed(ForgeWizardPage page,
InputComponent<?, ?> input, Text containerText) {
String selectedPath;
DirectoryDialog dialog = new DirectoryDialog(page.getShell(), SWT.OPEN);
dialog.setText("Select a directory");
dialog.setFilterPath(containerText.getText());
selectedPath = dialog.open();
if (selectedPath != null) {
containerText.setText(selectedPath);
}
}
@Override
protected Class<File> getProducedType() {
return File.class;
}
@Override
protected String getSupportedInputType() {
return InputType.DIRECTORY_PICKER;
}
@Override
protected Class<?>[] getSupportedInputComponentTypes() {
return new Class<?>[] { UIInput.class };
}
}