import java.io.File;

import javax.swing.*;
import javax.swing.filechooser.*;

/**
 * Filters file names for input (*.melts) and output (*.out).
 * @version 1.0 (August 2007)
 * @author Mark S. Ghiorso, OFM-Research Inc.
 */
public class MeltsFileFilter extends FileFilter {
  private String filter;

  /**
   * Sets filter to string ".melts".
   */
  public MeltsFileFilter () {
    this.filter = ".melts";
  }
  
  /**
   * Sets filter to string specified.
   * @param filter File filter string.
   */
  public MeltsFileFilter (String filter) {
    this.filter = filter;
  } 
    
  /**
   * Accept all directories and all *.melts files.
   * @param f File to filter.
   * @return True if acceptable; otherwise false.
   */
  public boolean accept(File f) {
    if (f.isDirectory()) return true;
    		
    String name = f.getName();
    
    if (name != null) {
      if (name.endsWith(filter)) return true; else return false;
    }
    
    return false;

  }
    
  /**
   * Get Description of the file filter.
   * @return Description of the file filter.
   */
  public String getDescription() {
    if (filter.equals(".melts")) return "File name must end with .melts";
    else return "Select name and location for output file (*.out)";
  }
}
