/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.wizards.toolintegration;
import java.io.File;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import de.rcenvironment.core.gui.utils.common.components.PropertyTabGuiHelper;
/**
* Listener for all Buttons that should open a filessystem file dialog and put the selected path
* into the given text field. If the isDirectoryDialog boolean is true, a DirectoryDialog will open
* instead.
*
* @author Sascha Zur
*/
public class PathChooserButtonListener implements SelectionListener {
private static final String OPEN_PATH = "Open path...";
private Text linkedTextfield;
private Shell shell;
private boolean directoryDialog;
private File openPath = null;
public PathChooserButtonListener(Text linkedTextfield, boolean isDirectoryDialog, Shell shell) {
this.linkedTextfield = linkedTextfield;
this.shell = shell;
directoryDialog = isDirectoryDialog;
}
@Override
public void widgetSelected(SelectionEvent arg0) {
String selectedPath;
if (!directoryDialog) {
if (openPath != null) {
selectedPath = PropertyTabGuiHelper.selectFileFromFileSystem(shell,
new String[] { "*.*" }, OPEN_PATH, openPath.getAbsolutePath());
} else {
selectedPath = PropertyTabGuiHelper.selectFileFromFileSystem(shell,
new String[] { "*.*" }, OPEN_PATH);
}
} else {
selectedPath = PropertyTabGuiHelper.selectDirectoryFromFileSystem(shell, OPEN_PATH);
}
if (selectedPath != null) {
linkedTextfield.setText(selectedPath);
}
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
widgetSelected(arg0);
}
public void setOpenPath(File path) {
openPath = path;
}
}