View Javadoc

1   package com.melloware.jukes.file.filter;
2   
3   import java.io.File;
4   import java.util.Locale;
5   
6   import javax.swing.filechooser.FileFilter;
7   
8   import org.apache.commons.io.FilenameUtils;
9   import org.apache.commons.lang.WordUtils;
10  
11  /**
12   * Filters for music file in JFileChooser.  Such as .mp3, .ogg, .speex, .ape 
13   * and .flac files.
14   * <p>
15   * Copyright (c) 1999-2007 Melloware, Inc. <http://www.melloware.com>
16   * @author Emil A. Lefkof III <info@melloware.com>
17   * @version 4.0
18   */
19  public final class MusicFilter
20      extends FileFilter {
21  
22      public static final String MP3 = "mp3";
23      public static final String OGG = "ogg";
24      public static final String FLAC = "flac";
25      public static final String SPEEX = "spx";
26      public static final String APE = "ape";
27      public static final String[] MP3_EXTENSIONS = new String[] {
28                                                        MP3, MP3.toUpperCase(Locale.US), WordUtils.capitalize(MP3)
29                                                    };
30      public static final String[] ENTAGGED_EXTENSIONS = new String[] {
31                                                           OGG, SPEEX, APE, FLAC, OGG.toUpperCase(Locale.US),
32                                                           FLAC.toUpperCase(Locale.US), SPEEX.toUpperCase(Locale.US),
33                                                           APE.toUpperCase(Locale.US), WordUtils.capitalize(OGG),
34                                                           WordUtils.capitalize(SPEEX), WordUtils.capitalize(APE),
35                                                           WordUtils.capitalize(FLAC)
36                                                       };
37      public static final String[] EXTENSIONS = new String[] {
38                                                    MP3, OGG, FLAC, APE, SPEEX,  MP3.toUpperCase(Locale.US),
39                                                    OGG.toUpperCase(Locale.US), FLAC.toUpperCase(Locale.US),
40                                                    APE.toUpperCase(Locale.US), SPEEX.toUpperCase(Locale.US),
41                                                    WordUtils.capitalize(MP3), WordUtils.capitalize(OGG),
42                                                    WordUtils.capitalize(FLAC), WordUtils.capitalize(SPEEX),
43                                                    WordUtils.capitalize(APE)
44                                                };
45  
46      /**
47       * Default Constuctor
48       */
49      public MusicFilter() {
50          super();
51      }
52  
53      /* (non-Javadoc)
54       * @see javax.swing.filechooser.FileFilter#getDescription()
55       */
56      public String getDescription() {
57          return "Music Files (*.mp3, *.ogg, *.flac, *.ape, *.spx)";
58      }
59  
60      /**
61       * Accept all music files such as .mp3, .ogg, and .flac
62       * <p>
63       * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
64       */
65      public boolean accept(final File aFile) {
66          if (aFile.isDirectory()) {
67              return true;
68          }
69  
70          return FilenameUtils.isExtension(aFile.getName().toLowerCase(), EXTENSIONS);
71      }
72  
73  }