Bug 13036 fixed: Bad help page associated to history browser
[scilab.git] / scilab / modules / history_browser / src / java / org / scilab / modules / history_browser / actions / PrefsAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010 - DIGITEO - Vincent COUVERT
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.1-en.txt
10  *
11  */
12
13 package org.scilab.modules.history_browser.actions;
14
15 import java.lang.reflect.InvocationTargetException;
16
17 import javax.swing.ImageIcon;
18
19 import org.scilab.modules.commons.ScilabGeneralPrefs;
20 import org.scilab.modules.gui.bridge.menuitem.SwingScilabMenuItem;
21 import org.scilab.modules.gui.events.callback.CommonCallBack;
22 import org.scilab.modules.gui.menuitem.MenuItem;
23 import org.scilab.modules.gui.menuitem.ScilabMenuItem;
24 import org.scilab.modules.gui.pushbutton.PushButton;
25 import org.scilab.modules.gui.pushbutton.ScilabPushButton;
26 import org.scilab.modules.gui.utils.ScilabSwingUtilities;
27 import org.scilab.modules.history_browser.CommandHistoryMessages;
28
29 /**
30  * Manage Help Actions
31  * @author Vincent COUVERT
32  */
33 public final class PrefsAction extends CommonCallBack {
34
35     private static final long serialVersionUID = 1L;
36
37     private static final String LABEL = CommandHistoryMessages.SCILAB_PREFS;
38     private static final String ICON = ScilabSwingUtilities.findIcon("preferences-system");
39     private static final char MNEMONIC = 'P';
40
41     /**
42      * Constructor
43      */
44     public PrefsAction() {
45         super("");
46     }
47
48     /**
49      * Create the associated menu
50      * @return the menu
51      */
52     public static MenuItem createMenuItem() {
53         MenuItem menuItem = ScilabMenuItem.createMenuItem();
54         menuItem.setText(LABEL);
55         menuItem.setMnemonic(MNEMONIC);
56         menuItem.setCallback(getCallBack());
57         ((SwingScilabMenuItem) menuItem.getAsSimpleMenuItem()).setIcon(new ImageIcon(ICON));
58         return menuItem;
59     }
60
61     /**
62      * Create the associated button
63      * @return the button
64      */
65     public static PushButton createPushButton() {
66         PushButton pushButton = ScilabPushButton.createPushButton();
67         pushButton.setIcon(ICON);
68         pushButton.setToolTipText(LABEL);
69         pushButton.setCallback(getCallBack());
70         return pushButton;
71     }
72
73     /**
74      * Create a new class instance
75      * @return the instance
76      */
77     private static CommonCallBack getCallBack() {
78         CommonCallBack callback = null;
79         try {
80             callback = PrefsAction.class.getConstructor().newInstance();
81         } catch (IllegalArgumentException e) {
82             e.printStackTrace();
83         } catch (SecurityException e) {
84             e.printStackTrace();
85         } catch (InstantiationException e) {
86             e.printStackTrace();
87         } catch (IllegalAccessException e) {
88             e.printStackTrace();
89         } catch (InvocationTargetException e) {
90             e.printStackTrace();
91         } catch (NoSuchMethodException e) {
92             e.printStackTrace();
93         }
94         return callback;
95     }
96
97     /**
98      * Action!
99      * @see org.scilab.modules.gui.events.callback.CallBack#callBack()
100      */
101     @Override
102     public void callBack() {
103         ScilabGeneralPrefs.openPreferences("command-history/");
104     }
105 }