1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.gui.action;
21
22 import java.awt.event.ActionEvent;
23 import java.io.File;
24
25 import javax.swing.AbstractAction;
26 import javax.swing.Action;
27
28 import org.xnap.XNap;
29 import org.xnap.gui.DirectoryProvider;
30 import org.xnap.gui.StatusBar;
31 import org.xnap.gui.util.IconHelper;
32
33 /***
34 * Plays the files provided by {@link DirectoryProvider} using the
35 * {@link ActionHelper}.
36 */
37 public class PlayDirectoryAction extends AbstractAction
38 {
39
40
41
42
43
44 private DirectoryProvider dp;
45
46
47
48 public PlayDirectoryAction(DirectoryProvider dp)
49 {
50 this.dp = dp;
51
52 putValue(Action.NAME, XNap.tr("Play Directory"));
53 putValue(Action.SHORT_DESCRIPTION,
54 XNap.tr("Plays selected directory."));
55 putValue(IconHelper.XNAP_ICON, "1rightarrow.png");
56 }
57
58
59
60 /***
61 * Collects the files from the directory provided by the {@link
62 * DirectoryProvider} and plays them using the {@link ActionHelper}
63 * object.
64 *
65 * <p>Only the first file is actually played the ensuing files are
66 * enqueued.
67 */
68 public void actionPerformed(ActionEvent event)
69 {
70 File dir = dp.getDirectory();
71
72 if (dir == null || !dir.isDirectory()) {
73 StatusBar.setText(XNap.tr("No directory selected"));
74 return;
75 }
76
77 final File[] files = dir.listFiles();
78
79 if (files != null) {
80 ActionHelper.enqueueFiles(files, true);
81 }
82 }
83 }