/*******************************************************************************
* LogDruid : Generate charts and reports using data gathered in log files
* Copyright (C) 2016 Frederic Valente (frederic.valente@gmail.com)
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
*******************************************************************************/
package logdruid.ui.dialog;
import java.io.File;
import javax.swing.JFileChooser;
final public class FileChooserDialog {
/*
* -------------------------------------------------------------------------
* Public attributes
* -------------------------------------------------------------------------
*/
/*
* -------------------------------------------------------------------------
* Private attributes
* -------------------------------------------------------------------------
*/
/**
* The previous location were the last file has been opened.
*/
static private File previousOpenLocation = new File(".");
/**
* The JFileChooser used to display the open fle dialog box.
*/
private JFileChooser dialog = new JFileChooser();
/**
* The JFileChooser result.
*/
private int result = JFileChooser.CANCEL_OPTION;
/*--------------------------------------------------------------------------
* Constructor(s)
*--------------------------------------------------------------------------*/
/**
* Construct a File Chooser and display the file selection dialog
*/
public FileChooserDialog() {
dialog.setCurrentDirectory(previousOpenLocation);
dialog.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
dialog.setMultiSelectionEnabled(true);
// Multi Selection mode.
// NOTE This mode is not yet implemented in the java 1.2 L&Fs.
// _dialog.setMultiSelectionEnabled(true);
result = dialog.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
// Memorisation des valeurs pour les afficher lors du prochain
// affichage d'un dialogue d'ouverture de fichier.
previousOpenLocation = dialog.getCurrentDirectory();
}
}
/*--------------------------------------------------------------------------
* Constructor(s)
*--------------------------------------------------------------------------*/
/**
* Construct a File Chooser and display the file selection dialog
*/
public FileChooserDialog(File previousLocation) {
if (previousLocation.exists() && previousLocation.isDirectory()) {
dialog.setCurrentDirectory(previousLocation);
} else {
dialog.setCurrentDirectory(previousOpenLocation);
}
dialog.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
dialog.setMultiSelectionEnabled(true);
// Multi Selection mode.
// NOTE This mode is not yet implemented in the java 1.2 L&Fs.
// _dialog.setMultiSelectionEnabled(true);
result = dialog.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
// Memorisation des valeurs pour les afficher lors du prochain
// affichage d'un dialogue d'ouverture de fichier.
previousOpenLocation = dialog.getCurrentDirectory();
}
}
/*
* -------------------------------------------------------------------------
* Public methods
* -------------------------------------------------------------------------
*/
/**
* Returns the selected file in mono-file selection mode
*/
public File getSelectedFile() {
return dialog.getSelectedFile();
}
/**
* Returns a list of selected files in the multi-selection mode.
* <p>
* <b>Warning:</b> This mode is not yet implemented in the java 1.2 L&Fs.
*/
public File[] getSelectedFiles() {
File[] returnValue;
if (dialog.isMultiSelectionEnabled()) {
returnValue = dialog.getSelectedFiles();
} else {
returnValue = null;
}
return returnValue;
}
/**
* Returns true is the user choose the approve button of the file chooser
* dialog box.
*/
public boolean isValidate() {
return (result == JFileChooser.APPROVE_OPTION);
}
/**
* Returns true if multiple files can be selected.
* <p>
* <b>Warning:</b> This functionnality is not yet implemented in the java
* 1.2 L&Fs.
*/
public boolean isMultiSelectionEnabled() {
return dialog.isMultiSelectionEnabled();
}
/*
* -------------------------------------------------------------------------
* Private methods
* -------------------------------------------------------------------------
*/
}