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
13
14
15
16
17
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
52
53 public MusicFilter() {
54 super();
55 }
56
57
58
59
60 public String getDescription() {
61 return "Music Files (*.mp3, *.ogg, *.flac, *.ape, *.spx)";
62 }
63
64
65
66
67
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 }