package net.sourceforge.squirrel_sql.client.session;
import net.sourceforge.squirrel_sql.fw.util.FileExtensionFilter;
import javax.swing.*;
import java.util.HashMap;
import java.util.prefs.Preferences;
public class FileChooserManager
{
private static final String PREF_PRE_SELECTED_FILE_FILTER = "Squirrel.filechoosermanager.preselfilefilter";
public static final String FILE_ENDING_TXT = ".txt";
public static final String FILE_ENDING_SQL = ".sql";
public static final String FILE_ENDING_NONE = "FILE_ENDING_NONE";
private JFileChooser _fileChooser;
private HashMap<FileExtensionFilter, String> _fileAppenixes = new HashMap<FileExtensionFilter, String>();
public FileChooserManager()
{
_fileChooser = new JFileChooser();
FileExtensionFilter txtFilter = new FileExtensionFilter("Text files", new String[]{FILE_ENDING_TXT});
_fileChooser.addChoosableFileFilter(txtFilter);
_fileAppenixes.put(txtFilter, FILE_ENDING_TXT);
FileExtensionFilter sqlFilter = new FileExtensionFilter("SQL files", new String[]{FILE_ENDING_SQL});
_fileChooser.addChoosableFileFilter(sqlFilter);
_fileAppenixes.put(sqlFilter, FILE_ENDING_SQL);
String fileEndingPref = Preferences.userRoot().get(PREF_PRE_SELECTED_FILE_FILTER, FILE_ENDING_NONE);
if(FILE_ENDING_SQL.equals(fileEndingPref))
{
_fileChooser.setFileFilter(sqlFilter);
}
else if(FILE_ENDING_TXT.equals(fileEndingPref))
{
_fileChooser.setFileFilter(txtFilter);
}
}
public String getSelectedFileEnding()
{
return _fileAppenixes.get(_fileChooser.getFileFilter());
}
public JFileChooser getFileChooser()
{
return _fileChooser;
}
public void saveWasApproved()
{
if (null != getSelectedFileEnding())
{
Preferences.userRoot().put(PREF_PRE_SELECTED_FILE_FILTER, getSelectedFileEnding());
}
else
{
Preferences.userRoot().put(PREF_PRE_SELECTED_FILE_FILTER, FILE_ENDING_NONE);
}
}
}