package co.forsaken.projectindigo.gui.components;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import co.forsaken.projectindigo.data.log.Logger;
import co.forsaken.projectindigo.gui.SettingsPanel;
import co.forsaken.projectindigo.utils.Settings;
@SuppressWarnings("serial") public class DirectorySelector extends JFrame implements ActionListener {
private SettingsPanel _settings;
private String _choosertitle = "Please select an installation location";
JFileChooser _chooser = new JFileChooser();
public DirectorySelector(SettingsPanel settings) {
super();
_settings = settings;
setPreferredSize(getPreferredSize());
setSize(getPreferredSize());
setLocationRelativeTo(_settings);
}
public void actionPerformed(ActionEvent e) {
setPreferredSize(getPreferredSize());
setSize(getPreferredSize());
setLocationRelativeTo(_settings);
_chooser.setCurrentDirectory(new File(Settings.getToken().installPath));
_chooser.setDialogTitle(_choosertitle);
_chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
_chooser.setAcceptAllFileFilterUsed(false);
if (_chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
_settings.setInstallFolderText(getChooserDir());
} else {
Logger.logWarn("No Selection.");
}
}
public String getChooserDir() {
String path = _chooser.getSelectedFile().getAbsolutePath();
if (!path.endsWith(File.separator)) {
path += File.separator;
}
return path;
}
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
}