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[] 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
48
49 public MusicFilter() {
50 super();
51 }
52
53
54
55
56 public String getDescription() {
57 return "Music Files (*.mp3, *.ogg, *.flac, *.ape, *.spx)";
58 }
59
60
61
62
63
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 }