content: package edu.stanford.rsl.conrad.utils;
  
  import java.io.File;
  
  import javax.swing.JFileChooser;
  
  import edu.stanford.rsl.conrad.io.SelectionCancelledException;
  
  
  public abstract class FileUtil {
  
  	/**
  	 * Wrapper for the Swing FileChooser. Prompts the user for a file that matches "filter".
  	 * If save is set to "true", the heading will read as "Save as".
  	 * If it is false, the heading reads "load".
  	 * If the User cancels, an Exception is thrown.
  	 * @param filter StringFileFilter for the file type
  	 * @param save if true a save dialog is shown
  	 * @return absolute path of the file
  	 * @throws Exception if the action is cancelled
  	 */
  	public static String myFileChoose(String filter, boolean save) throws Exception{
  		return myFileChoose(null, filter, save);
  	}
  	
  	/**
  	 * Wrapper for the Swing FileChooser. Prompts the user for a file that matches "filter".
  	 * If save is set to "true", the heading will read as "Save as".
  	 * If it is false, the heading reads "load".
  	 * If the User cancels, an Exception is thrown.
  	 * @param title window title. Will not be set if null.
  	 * @param filter StringFileFilter for the file type
  	 * @param save if true a save dialog is shown
  	 * @return absolute path of the file
  	 * @throws Exception if the action is cancelled
  	 */
  	public static String myFileChoose(String title, String filter, boolean save) throws Exception{
  		Configuration.loadConfiguration();
  		JFileChooser FC = new JFileChooser();
  		if (title != null) FC.setDialogTitle(title);
  		if (Configuration.getGlobalConfiguration().getCurrentPath() != null){
  			File dir = new File(Configuration.getGlobalConfiguration().getCurrentPath());
  			FC.setCurrentDirectory(dir);
  		}
  		FC.setVisible(true);
  		FC.setFileFilter(new StringFileFilter(filter));
  		int result = -1;
  		if (save) {
  			result = FC.showSaveDialog(null);
  		} else result = FC.showOpenDialog(null);
  		if (result == JFileChooser.CANCEL_OPTION) {
  			throw new SelectionCancelledException("Cancelled");
  		}
  		String filename = FC.getSelectedFile().getAbsolutePath();
  		if (save){
  			if (! filename.endsWith(filter)){
  				filename += filter;
  			}
  		}
  		Configuration.getGlobalConfiguration().setCurrentPath(FC.getCurrentDirectory().getAbsolutePath());
  		return filename;
  	}
  	
  }
  /*
   * Copyright (C) 2010-2014  Andreas Maier
   * CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
  */