01: package com.tagtraum.perf.gcviewer.action;
02:
03: import com.tagtraum.perf.gcviewer.GCViewer;
04: import com.tagtraum.perf.gcviewer.util.ExtensionFileFilter;
05:
06: import javax.swing.*;
07: import java.awt.*;
08: import java.awt.event.ActionEvent;
09: import java.io.File;
10:
11: /**
12: *
13: * @author <a href="mailto:hs@tagtraum.com">Hendrik Schreiber</a>
14: * Date: May 20, 2005
15: * Time: 1:51:06 PM
16: *
17: */
18: public class AddFile extends AbstractAction {
19: private GCViewer gcViewer;
20: private JFileChooser addDialog;
21: private File[] lastSelectedFiles = new File[0];
22:
23: public AddFile(final GCViewer gcViewer) {
24: this .gcViewer = gcViewer;
25: putValue(NAME, GCViewer.localStrings
26: .getString("main_frame_menuitem_add_file"));
27: putValue(SHORT_DESCRIPTION, GCViewer.localStrings
28: .getString("main_frame_menuitem_hint_add_file"));
29: putValue(MNEMONIC_KEY, new Integer(GCViewer.localStrings
30: .getString("main_frame_menuitem_mnemonic_add_file")
31: .charAt(0)));
32: putValue(ACTION_COMMAND_KEY, "add");
33: putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke('A',
34: Event.CTRL_MASK));
35: putValue(SMALL_ICON, new ImageIcon(Toolkit.getDefaultToolkit()
36: .getImage(
37: gcViewer.getClass().getResource(
38: "images/add.gif"))));
39: addDialog = new JFileChooser();
40: // todo: change localstring to add file
41: addDialog.setDialogTitle(GCViewer.localStrings
42: .getString("fileopen_dialog_title"));
43: addDialog.setMultiSelectionEnabled(true);
44: addDialog
45: .addChoosableFileFilter(ExtensionFileFilter.GcExtensionFilter);
46: addDialog
47: .addChoosableFileFilter(ExtensionFileFilter.TxtExtensionFilter);
48: addDialog
49: .addChoosableFileFilter(ExtensionFileFilter.LogExtensionFilter);
50: setEnabled(false);
51: }
52:
53: public void actionPerformed(ActionEvent e) {
54: final int val = addDialog.showOpenDialog(gcViewer);
55: if (val == JFileChooser.APPROVE_OPTION) {
56: lastSelectedFiles = addDialog.getSelectedFiles();
57: gcViewer.add(lastSelectedFiles);
58: }
59: }
60:
61: public void setSelectedFile(final File file) {
62: addDialog.setCurrentDirectory(file.getParentFile());
63: addDialog.setSelectedFile(file);
64: }
65:
66: public File[] getLastSelectedFiles() {
67: return lastSelectedFiles;
68: }
69:
70: }
|