package vazkii.minetunes.player.chooser;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.filechooser.FileFilter;
import vazkii.minetunes.player.chooser.action.ISelectorAction;
public class FileSelector extends JFrame {
private static final int WIDTH = 200;
private static final int HEIGHT = 75;
JButton selectButton;
JFileChooser fileChooser;
JPanel panel = new JPanel();
ISelectorAction action;
public FileSelector(FileFilter filter, int type, ISelectorAction action) {
super("");
this.action = action;
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
fileChooser = new JFileChooser() {
@Override
protected JDialog createDialog(Component parent) throws HeadlessException {
JDialog dialog = super.createDialog(parent);
dialog.setLocationByPlatform(true);
dialog.setAlwaysOnTop(true);
return dialog;
}
};
if(filter != null) {
fileChooser.setAcceptAllFileFilterUsed(false);
fileChooser.addChoosableFileFilter(filter);
}
fileChooser.setFileSelectionMode(type);
setAlwaysOnTop(true);
if(fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
action.select(file);
dispose();
}
}
}