4a8558ee30ff1128d9be70a35863ff5e206b3b35
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / actions / HelpOnKeywordAction.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.BadLocationException;
17
18 import org.scilab.modules.gui.menuitem.MenuItem;
19 import org.scilab.modules.scinotes.SciNotes;
20 import org.scilab.modules.scinotes.ScilabLexerConstants;
21 import org.scilab.modules.scinotes.ScilabEditorPane;
22 import org.scilab.modules.scinotes.KeywordEvent;
23 import org.scilab.modules.scinotes.utils.SciNotesMessages;
24 import org.scilab.modules.action_binding.InterpreterManagement;
25
26 /**
27  * HelpOnKeywordAction Class
28  * @author Calixte DENIZET
29  */
30 public class HelpOnKeywordAction extends DefaultAction {
31     
32     /**
33      * Constructor
34      * @param editor SciNotes
35      */
36     private HelpOnKeywordAction(SciNotes editor) {
37         super(SciNotesMessages.HELP_ON_KEYWORD, editor);
38     }
39     
40     /**
41      * doAction
42      */
43     public void doAction() {
44         KeywordEvent kwe = ((ScilabEditorPane) getEditor().getTextPane()).getKeywordEvent();
45         if (ScilabLexerConstants.isHelpable(kwe.getType())) {
46             try {
47                 String kw = getEditor().getTextPane().getDocument().getText(kwe.getStart(), kwe.getLength());
48             InterpreterManagement.requestScilabExec("help('" + kw + "')");    
49             } catch (BadLocationException e) { }
50         }
51     }
52     
53     /**
54      * createMenu
55      * @param editor SciNotes
56      * @param key Keystroke
57      * @return MenuItem
58      */
59     public static MenuItem createMenu(SciNotes editor, KeyStroke key) {
60         return createMenu(SciNotesMessages.HELP_ON_KEYWORD, null, new HelpOnKeywordAction(editor), key);
61     }
62 }