Refactorization of the management of the actions in menus, button, shortcuts
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / actions / PasteAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO - Bruno JOFRET
4  * Copyright (C) 2010 - Calixte DENIZET
5  *
6  * This file must be used under the terms of the CeCILL.
7  * This source file is licensed as described in the file COPYING, which
8  * you should have received as part of this distribution.  The terms
9  * are also available at
10  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11  *
12  */
13
14 package org.scilab.modules.scinotes.actions;
15
16 import javax.swing.KeyStroke;
17 import javax.swing.text.DefaultEditorKit;
18
19 import org.scilab.modules.gui.menuitem.MenuItem;
20 import org.scilab.modules.gui.pushbutton.PushButton;
21 import org.scilab.modules.scinotes.SciNotes;
22 import org.scilab.modules.scinotes.ScilabDocument;
23
24 /**
25  * Class for paste action
26  * @author Bruno JOFRET
27  * @author Calixte DENIZET
28  */
29 public class PasteAction extends DefaultAction {
30
31     /**
32      * Constructor
33      * @param name the name of the action
34      * @param editor to associate
35      */
36     public PasteAction(String name, SciNotes editor) {
37         super(name, editor);
38     }
39
40     /**
41      * Action !
42      */
43     public void doAction() {
44         ScilabDocument doc = (ScilabDocument) getEditor().getTextPane().getDocument();
45         doc.mergeEditsBegin();
46         getEditor().getTextPane().getActionMap().get(DefaultEditorKit.pasteAction).actionPerformed(null);
47         doc.mergeEditsEnd();
48     }
49
50     /**
51      * Create the MenuItem for print action
52      * @param label label of the menu
53      * @param editor Editor
54      * @param key KeyStroke
55      * @return a MenuItem
56      */
57     public static MenuItem createMenu(String label, SciNotes editor, KeyStroke key) {
58         return createMenu(label, null, new PasteAction(label, editor), key);
59     }
60
61     /**
62      * createButton
63      * @param tooltip the tooltip
64      * @param icon an icon name searched in SCI/modules/gui/images/icons/
65      * @param editor SciNotes
66      * @return PushButton
67      */
68     public static PushButton createButton(String tooltip, String icon, SciNotes editor) {
69         return createButton(tooltip, icon, new PasteAction(tooltip, editor));
70     }
71 }