1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.xmlcv.gui.action;
28
29 import java.awt.event.ActionEvent;
30 import java.awt.event.InputEvent;
31 import java.awt.event.KeyEvent;
32
33 import javax.swing.AbstractAction;
34 import javax.swing.ImageIcon;
35 import javax.swing.JFileChooser;
36 import javax.swing.KeyStroke;
37
38 import org.xmlcv.gui.Frame;
39 import org.xmlcv.util.Config;
40 import org.xmlcv.util.I18n;
41
42 /***
43 * Listener for « Open a CV » action
44 *
45 * This class follow the pattern Singleton from GOF. So that only one object is
46 * shared between all the Button/MenuItem.<br>
47 * The <code>actionPerformed()</code> method is the core of the class.<br>
48 * The <code>parent</code> is present to allow further modal dialog creation.
49 *
50 * @version $Revision: 114 $
51 * @author <a href="mailto:drazzib@drazzib.com">Damien Raude-Morvan </a>
52 */
53 public class ActionOpenCV extends AbstractAction {
54
55 /*** Parent Frame (for future modal dialog) */
56 private Frame _parentFrame;
57
58 /*** Singleton */
59 static private ActionOpenCV _singleInstance = null;
60
61 /***
62 * Create a new Action that could be used in JMenuItem, JButton to asign
63 * text, icon, accesskey. <br>
64 * Don't access directly :)
65 *
66 * @param parent
67 * main window of XMLCV
68 */
69 private ActionOpenCV(Frame parent) {
70 this._parentFrame = parent;
71
72 putValue(NAME, I18n.getString("ActionOpenCV.OpenCV"));
73 putValue(SHORT_DESCRIPTION, I18n.getString("ActionOpenCV.OpenCVDesc"));
74 putValue(SMALL_ICON, new ImageIcon(getClass().getResource(
75 Config.ICON_FILEOPEN)));
76 putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_O));
77 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_O,
78 InputEvent.CTRL_MASK));
79 }
80
81 /***
82 * Get a new instance of the singleton (create it if doesn't exist)
83 *
84 * @param parent
85 * main window of XMLCV
86 * @return singleton instance of Action
87 */
88 public static ActionOpenCV instance(Frame parent) {
89 if (null == _singleInstance)
90 _singleInstance = new ActionOpenCV(parent);
91 return _singleInstance;
92 }
93
94
95
96
97
98
99 public void actionPerformed(ActionEvent e) {
100 System.out.println(this.getClass().toString());
101 JFileChooser j = new JFileChooser();
102 int retour = j.showOpenDialog(this._parentFrame);
103
104 if (retour == JFileChooser.APPROVE_OPTION) {
105 this._parentFrame.openCV(j.getSelectedFile().getAbsolutePath());
106 }
107 }
108
109 }