package osa;
import java.io.*;
import java.util.*;
/**
 * Класс используется в качестве фильтра названий файлов, которые нужно
 * показывать в окне выбора файлов.
*/
public class SFileFilter extends javax.swing.filechooser.FileFilter
{
  /**
   * Поле, в котором хранится краткое описание данного типа файлов.
  */
  protected String Description;
  /**
   * Поле, в котором хранится расширение данного типа файлов.
  */
  protected String Extension;
  /**
   * Функция устанавливает краткое описание данного типа файлов.
   * @param s строка с описанием
  */
  public void setDescription(String s) { Description=s; }
  /**
   * Функция возвращает краткое описание данного типа файлов.
   * @return строка с описанием типа файлов
  */
  public String getDescription() { return(Description); }
  /**
   * Функция устанавливает расширение данного типа файлов.
   * @param s строка с расширением
  */
  public void set(String s) { Extension=s.toLowerCase(); }
  /**
   * Функция для проверки расширения файлов. Используется в окне выбора файла.
   * @param f проверяемый файл
   * @return true, если файл нужно показывать и false в противном  случае
  */
  public boolean accept(File f)
  { if(f.isDirectory()) return true; else
    if((f.isFile())&&(f.getName().toLowerCase().endsWith(Extension))) return true;
    return false;
  }
  /**
   * Функция возвращает true, если файл имеет нужное расширение и false в
   * противном случае.
   * @param f проверяемый файл
   * @return true, если файл имеет нужное расширение
  */
  public boolean acceptName(File f)
  { if(f.isDirectory()) return true; else
    if(f.getName().toLowerCase().endsWith(Extension)) return true;
    return false;
  }
}
