001 /* PAVLOV -- Multiple Choice Study System
002 * Copyright (C) 2000 - 2004 T.J. Willis
003 *
004 * This program is free software; you can redistribute it and/or
005 * modify it under the terms of the GNU General Public License
006 * as published by the Free Software Foundation; either version 2
007 * of the License, or (at your option) any later version.
008 *
009 * This program is distributed in the hope that it will be useful,
010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012 * GNU General Public License for more details.
013 *
014 * You should have received a copy of the GNU General Public License
015 * along with this program; if not, write to the Free Software
016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
017 *
018 * $Header: /cvsroot/pavlov/net/sourceforge/pavlov/zipUtilities/ImageFileFilter.java,v 1.1 2004/05/10 15:33:22 tj_willis Exp $
019 */
020 package net.sourceforge.pavlov.zipUtilities;
021
022 import java.util.zip.ZipEntry;
023 import java.io.File;
024
025 /**
026 * A FileFilter that accepts only Image files (JPEG, PNG, GIF) and
027 * zip/jar entries.
028 *
029 * @version $Revision: 1.1 $
030 */
031 public class ImageFileFilter extends ZipCapableFileFilter {
032 // FIXME: add to CVS
033 /**
034 * Returns true if f is an Image file.
035 *
036 * @param f a <code>File</code> value
037 * @return a <code>boolean</code> value
038 */
039 public boolean accept (File f) {
040 if (f == null)
041 return false;
042 return checkName (f.getName ());
043 }
044
045 /**
046 * Returns true if f is an Image file.
047 *
048 * @param f a <code>ZipEntry</code> value
049 * @return a <code>boolean</code> value
050 */
051 public boolean accept (ZipEntry f) {
052 if (f == null)
053 return false;
054 return checkName (f.getName ());
055 }
056
057 /**
058 * Determines if name represents a Image file/entry name.
059 *
060 * @param name a <code>String</code> value
061 * @return a <code>boolean</code> value
062 */
063 protected boolean checkName (String name) {
064 if (name == null)
065 return false;
066 if (isAJPG (name))
067 return true;
068 if (isAPNG (name))
069 return true;
070 if (isAGIF (name))
071 return true;
072 return false;
073 }
074
075 private boolean isAJPG (String name) {
076 if (name.endsWith (".jpg"))
077 return true;
078 if (name.endsWith (".JPG"))
079 return true;
080 if (name.endsWith (".jpeg"))
081 return true;
082 if (name.endsWith (".JPEG"))
083 return true;
084 return false;
085 }
086 private boolean isAGIF (String name) {
087 if (name.endsWith (".gif"))
088 return true;
089 if (name.endsWith (".GIF"))
090 return true;
091 if (name.endsWith (".Gif"))
092 return true;
093 return false;
094 }
095 private boolean isAPNG (String name) {
096 if (name.endsWith (".png"))
097 return true;
098 if (name.endsWith (".PNG"))
099 return true;
100 if (name.endsWith (".Png"))
101 return true;
102 return false;
103 }
104 /**
105 * Returns description of this file filter.
106 *
107 * @return a <code>String</code> value
108 */
109 public String getDescription () {
110 return "Image Files";
111 }
112
113 }