Refactorization of the management of the actions in menus, button, shortcuts
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / actions / SaveAsAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO - Bruno JOFRET
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 package org.scilab.modules.scinotes.actions;
14
15 import javax.swing.KeyStroke;
16
17 import org.scilab.modules.gui.menuitem.MenuItem;
18 import org.scilab.modules.gui.messagebox.ScilabModalDialog;
19 import org.scilab.modules.gui.messagebox.ScilabModalDialog.IconType;
20 import org.scilab.modules.gui.pushbutton.PushButton;
21 import org.scilab.modules.scinotes.SciNotes;
22 import org.scilab.modules.scinotes.utils.SciNotesMessages;
23
24 /**
25  *
26  * @author Bruno JOFRET
27  *
28  */
29 public final class SaveAsAction extends DefaultAction {
30
31     /**
32      * serialVersionUID
33      */
34     private static final long serialVersionUID = 8327808176820789884L;
35
36     /**
37      * Constructor
38      * @param name the name of the action
39      * @param editor SciNotes
40      */
41     public SaveAsAction(String name, SciNotes editor) {
42         super(name, editor);
43     }
44
45     /**
46      * DoAction
47      */
48     public void doAction() {
49         if (!getEditor().saveAs()) {
50             ScilabModalDialog.show(getEditor(), SciNotesMessages.COULD_NOT_SAVE_FILE,
51                                    SciNotesMessages.SCINOTES_ERROR, IconType.ERROR_ICON);
52         }
53     }
54
55     /**
56      * CreateMenu
57      * @param label label of the menu
58      * @param editor SciNotes
59      * @param key KeyStroke
60      * @return MenuItem
61      */
62     public static MenuItem createMenu(String label, SciNotes editor, KeyStroke key) {
63         return createMenu(label, null, new SaveAsAction(label, editor), key);
64     }
65
66     /**
67      * createButton
68      * @param tooltip the tooltip
69      * @param icon an icon name searched in SCI/modules/gui/images/icons/
70      * @param editor SciNotes
71      * @return PushButton
72      */
73     public static PushButton createButton(String tooltip, String icon, SciNotes editor) {
74         return createButton(tooltip, icon, new SaveAsAction(tooltip, editor));
75     }
76 }