Refactorization of the management of the actions in menus, button, shortcuts
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / actions / CutAction.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 import javax.swing.text.DefaultEditorKit;
17
18 import org.scilab.modules.gui.menuitem.MenuItem;
19 import org.scilab.modules.gui.pushbutton.PushButton;
20 import org.scilab.modules.scinotes.SciNotes;
21 import org.scilab.modules.scinotes.ScilabDocument;
22
23 /**
24  * CutAction Class
25  * @author Bruno JOFRET
26  *
27  */
28 public final class CutAction extends DefaultAction {
29
30     /**
31      * serialVersionUID
32      */
33     private static final long serialVersionUID = -4831313579986185630L;
34
35     /**
36      * Constructor
37      * @param name the name of the action
38      * @param editor SciNotes
39      */
40     public CutAction(String name, SciNotes editor) {
41         super(name, editor);
42     }
43
44     /**
45      * doAction
46      */
47     public void doAction() {
48         ScilabDocument doc = (ScilabDocument) getEditor().getTextPane().getDocument();
49         doc.mergeEditsBegin();
50         getEditor().getTextPane().getActionMap().get(DefaultEditorKit.cutAction).actionPerformed(null);
51         doc.mergeEditsEnd();
52     }
53
54     /**
55      * createMenu
56      * @param label label of the menu
57      * @param editor SciNotes
58      * @param key KeyStroke
59      * @return MenuItem
60      */
61     public static MenuItem createMenu(String label, SciNotes editor, KeyStroke key) {
62         return createMenu(label, null, new CutAction(label, editor), key);
63     }
64
65     /**
66      * createButton
67      * @param tooltip the tooltip
68      * @param icon an icon name searched in SCI/modules/gui/images/icons/
69      * @param editor SciNotes
70      * @return PushButton
71      */
72     public static PushButton createButton(String tooltip, String icon, SciNotes editor) {
73         return createButton(tooltip, icon, new CutAction(tooltip, editor));
74     }
75 }