Refactorization of the management of the actions in menus, button, shortcuts
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / actions / CopySelectionInNewTabAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010 - Calixte DENIZET
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 java.beans.PropertyChangeEvent;
16 import java.beans.PropertyChangeListener;
17 import javax.swing.JMenuItem;
18 import javax.swing.KeyStroke;
19
20 import org.scilab.modules.gui.menuitem.MenuItem;
21 import org.scilab.modules.scinotes.SciNotes;
22
23 /**
24  * CopySelectionInNewTabAction class
25  * @author Calixte DENIZET
26  */
27 public final class CopySelectionInNewTabAction extends DefaultAction {
28
29     /**
30      * serialVersionUID
31      */
32     private static final long serialVersionUID = 320938663765236236L;
33
34     /**
35      * Constructor
36      * @param name the name of the action
37      * @param editor SciNotes
38      */
39     public CopySelectionInNewTabAction(String name, SciNotes editor) {
40         super(name, editor);
41     }
42
43     /**
44      * doAction
45      */
46     public void doAction() {
47         String selection = getEditor().getTextPane().getSelectedText();
48         SciNotes.scinotesWithText(selection);
49     }
50
51     /**
52      * createMenu
53      * @param label label of the menu
54      * @param editor scinotes
55      * @param key KeyStroke
56      * @return MenuItem
57      */
58     public static MenuItem createMenu(String label, final SciNotes editor, KeyStroke key) {
59         final MenuItem menuitem = createMenu(label, null, new CopySelectionInNewTabAction(label, editor), key);
60         ((JMenuItem) menuitem.getAsSimpleMenuItem()).addPropertyChangeListener(new PropertyChangeListener() {
61                 public void propertyChange(PropertyChangeEvent e) {
62                     String selection = editor.getTextPane().getSelectedText();
63                     menuitem.setEnabled(selection != null);
64                 }
65             });
66
67         return menuitem;
68     }
69 }