KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > edu > rice > cs > drjava > ui > ClassPathFilter


1  /*BEGIN_COPYRIGHT_BLOCK
2  *
3  * This file is part of DrJava. Download the current version of this project:
4  * http://sourceforge.net/projects/drjava/ or http://www.drjava.org/
5  *
6  * DrJava Open Source License
7  *
8  * Copyright (C) 2001-2003 JavaPLT group at Rice University (javaplt@rice.edu)
9  * All rights reserved.
10  *
11  * Developed by: Java Programming Languages Team
12  * Rice University
13  * http://www.cs.rice.edu/~javaplt/
14  *
15  * Permission is hereby granted, free of charge, to any person obtaining a
16  * copy of this software and associated documentation files (the "Software"),
17  * to deal with the Software without restriction, including without
18  * limitation the rights to use, copy, modify, merge, publish, distribute,
19  * sublicense, and/or sell copies of the Software, and to permit persons to
20  * whom the Software is furnished to do so, subject to the following
21  * conditions:
22  *
23  * - Redistributions of source code must retain the above copyright
24  * notice, this list of conditions and the following disclaimers.
25  * - Redistributions in binary form must reproduce the above copyright
26  * notice, this list of conditions and the following disclaimers in the
27  * documentation and/or other materials provided with the distribution.
28  * - Neither the names of DrJava, the JavaPLT, Rice University, nor the
29  * names of its contributors may be used to endorse or promote products
30  * derived from this Software without specific prior written permission.
31  * - Products derived from this software may not be called "DrJava" nor
32  * use the term "DrJava" as part of their names without prior written
33  * permission from the JavaPLT group. For permission, write to
34  * javaplt@rice.edu.
35  *
36  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
37  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
39  * THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
40  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
41  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42  * OTHER DEALINGS WITH THE SOFTWARE.
43  *
44 END_COPYRIGHT_BLOCK*/

45
46 package edu.rice.cs.drjava.ui;
47
48 import java.io.File JavaDoc;
49 import javax.swing.filechooser.FileFilter JavaDoc;
50
51
52 /** A file filter for files with extensions ".jar"/".zip". Used in file choosers for extra classpath option.
53  * @version $Id: ClassPathFilter.java 3519 2006-02-08 05:49:40Z rcartwright $
54  */

55 public class ClassPathFilter extends FileFilter JavaDoc {
56   public static final ClassPathFilter ONLY = new ClassPathFilter();
57
58   protected ClassPathFilter() { }
59
60   /** Returns true if the file's extension matches JAR or ZIP. */
61   public boolean accept(File JavaDoc f) {
62     if (f.isDirectory()) return true;
63     String JavaDoc extension = getExtension(f);
64     if (extension != null) return (extension.equals("jar") || extension.equals("zip"));
65     return false;
66   }
67
68   /** @return A description of this filter to display. */
69   public String JavaDoc getDescription() { return "Classpath elements"; }
70
71   /* Get the extension of a file. */
72   public static String JavaDoc getExtension(File JavaDoc f) {
73     String JavaDoc ext = null;
74     String JavaDoc s = f.getName();
75     int i = s.lastIndexOf('.');
76     if (i > 0 && i < s.length() - 1) ext = s.substring(i + 1).toLowerCase();
77     return ext;
78   }
79 }
80
Popular Tags