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 M4A = "m4a";
28      public static final String[] MP3_EXTENSIONS = new String[] {
29                                                        MP3, MP3.toUpperCase(Locale.US), WordUtils.capitalize(MP3)
30                                                    };
31      public static final String[] ENTAGGED_EXTENSIONS = new String[] {
32                                                           OGG, SPEEX, FLAC, OGG.toUpperCase(Locale.US),
33                                                           FLAC.toUpperCase(Locale.US), SPEEX.toUpperCase(Locale.US),
34                                                           WordUtils.capitalize(OGG),
35                                                           WordUtils.capitalize(SPEEX),
36                                                           WordUtils.capitalize(FLAC),
37                                                      };
38      public static final String[] APE_EXTENSIONS = new String[] {APE, APE.toUpperCase(Locale.US),
39      												WordUtils.capitalize(APE)
40      												};
41      public static final String[] EXTENSIONS = new String[] {
42                                                    MP3, OGG, FLAC, SPEEX,  MP3.toUpperCase(Locale.US),
43                                                    OGG.toUpperCase(Locale.US), FLAC.toUpperCase(Locale.US),
44                                                    SPEEX.toUpperCase(Locale.US),
45                                                    WordUtils.capitalize(MP3), WordUtils.capitalize(OGG),
46                                                    WordUtils.capitalize(FLAC), WordUtils.capitalize(SPEEX),
47                                                    APE, APE.toUpperCase(Locale.US), WordUtils.capitalize(APE),
48      											  };
49  
50      /**
51       * Default Constuctor
52       */
53      public MusicFilter() {
54          super();
55      }
56  
57      /* (non-Javadoc)
58       * @see javax.swing.filechooser.FileFilter#getDescription()
59       */
60      public String getDescription() {
61          return "Music Files (*.mp3, *.ogg, *.flac, *.ape, *.spx)";
62      }
63  
64      /**
65       * Accept all music files such as .mp3, .ogg, and .flac
66       * <p>
67       * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
68       */
69      public boolean accept(final File aFile) {
70          if (aFile.isDirectory()) {
71              return true;
72          }
73  
74          return FilenameUtils.isExtension(aFile.getName().toLowerCase(), EXTENSIONS);
75      }
76  
77  }