//*********************************************************************************************
//
// Author: 			Dackral Scott Phillips
//
// File: 			SWOGFileFilter.java
//
//	Date:				August 5, 2K2
//
// Description:	This is a java program written to satisfy the requirements necessary to
//						fulfill my master's degree.  This program creates a Sematic Web Ontology
//						Generator (SWOG).  It's primary purpose is to give semantic web newbies
//						an introduction to the syntax.  It provides help menus for beginning
//						users as well as an advanced code viewer with highlighted syntax.
//
//	Copyright © 2002 by Dackral Scott Phillips.  All Rights Reserved.
//
//*********************************************************************************************

   // File Filter to Allow User to Select Given File Types
   // Source Code Taken from 
   // Safari Tech Books Online : Java > Java Swing > 12. Chooser Dialogs > 12.2 The File Chooser Package
   // URL: http://safari.oreilly.com/main.asp?bookname=jswing&snode=69

	//I haven't modified anything in this file, and wouldn't recommend it,
	//So I haven't commented it other than what was already present. --Dack

   import java.io.File;
   import javax.swing.filechooser.FileFilter;

    public class SWOGFileFilter extends FileFilter 
   {
      String[] extensions;
      String description;
   
       public SWOGFileFilter(String ext) 
      {
         this (new String[] {ext}, null);
      }
   
       public SWOGFileFilter(String[] exts, String descr) 
      {
         // Clone and lowercase the extensions
      
         extensions = new String[exts.length];
         for (int i = exts.length - 1; i >= 0; i--) 
         {
            extensions[i] = exts[i].toLowerCase();
         }
         // Make sure we have a valid (if simplistic) description
      
         description = (descr == null ? exts[0] + " files" : descr);
      }
   
       public boolean accept(File f) 
      {
         // We always allow directories, regardless of their extension
      
         if (f.isDirectory()) 
         { 
            return true; 
         }
      
         // ok, it's a regular file so check the extension
         String name = f.getName().toLowerCase();
         for (int i = extensions.length - 1; i >= 0; i--) 
         {
            if (name.endsWith(extensions[i])) 
            {
               return true;
            }
         }
         return false;
      }
   
       public String getDescription() 
      { 
         return description; 
      }
   }
