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.awt.event.InputEvent;
24 import java.awt.event.KeyEvent;
25 import java.io.File;
26 import javax.swing.AbstractAction;
27 import javax.swing.Action;
28 import javax.swing.KeyStroke;
29 import org.xnap.XNap;
30 import org.xnap.action.AbstractXNapAction;
31 import org.xnap.gui.FileProvider;
32 import org.xnap.gui.util.IconHelper;
33
34 /***
35 * Enqueues the files provided by {@link FileProvider} using the
36 * {@link ActionHelper}.
37 *
38 * @todo for a large number of files like a whole directory the gui freezes
39 * noticeably.
40 */
41 public class EnqueueFileAction extends AbstractAction
42 {
43
44
45
46
47
48 private FileProvider fp;
49
50
51
52 public EnqueueFileAction(FileProvider fp)
53 {
54 this.fp = fp;
55
56 putValue(Action.NAME, XNap.tr("Enqueue"));
57 putValue(Action.SHORT_DESCRIPTION,
58 XNap.tr("Enqueues selected files."));
59 putValue(IconHelper.XNAP_ICON, "queue.png");
60 putValue(AbstractXNapAction.DEFAULT_KEYSTROKE,
61 KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.CTRL_MASK));
62 putValue(Action.ACTION_COMMAND_KEY, "enqueueFileAction");
63 }
64
65
66
67 /***
68 * Collects the files and enqueues them using {@link
69 * ActionHelper#enqueueFiles}
70 */
71 public void actionPerformed(ActionEvent event)
72 {
73 final File[] files = fp.getFiles();
74
75 if (files != null) {
76 ActionHelper.enqueueFiles(files, false);
77 }
78 }
79 }