/* Violet - A program for editing UML diagrams. Copyright (C) 2002 Cay S. Horstmann (http://horstmann.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 2 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, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package com.horstmann.violet.framework; import java.io.File; import java.util.StringTokenizer; import javax.swing.filechooser.FileFilter; /** A file filter that accepts all files with a given set of extensions. */ public class ExtensionFilter extends FileFilter { /** Constructs an extension file filter. @param description the description (e.g. "Woozle files") @param extensions the accepted extensions (e.g. new String[] { ".woozle", ".wzl" }) */ public ExtensionFilter(String description, String[] extensions) { this.description = description; this.extensions = extensions; } /** Constructs an extension file filter. @param description the description (e.g. "Woozle files") @param extensions the accepted extensions, separated by | (e.g.".woozle|.wzl" }) */ public ExtensionFilter(String description, String extensions) { this.description = description; StringTokenizer tokenizer = new StringTokenizer( extensions, "|"); this.extensions = new String[tokenizer.countTokens()]; for (int i = 0; i < this.extensions.length; i++) this.extensions[i] = tokenizer.nextToken(); } public boolean accept(File f) { if (f.isDirectory()) return true; String fname = f.getName().toLowerCase(); for (int i = 0; i < extensions.length; i++) if (fname.endsWith(extensions[i].toLowerCase())) return true; return false; } public String getDescription() { return description; } public String[] getExtensions() { return extensions; } private String description; private String[] extensions; }