Refactorization of the management of the actions in menus, button, shortcuts
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / actions / SetFontAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO
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 java.awt.Font;
17 import java.util.List;
18 import javax.swing.KeyStroke;
19
20 import org.scilab.modules.gui.bridge.fontchooser.SwingScilabFontChooser;
21 import org.scilab.modules.gui.menuitem.MenuItem;
22 import org.scilab.modules.scinotes.SciNotes;
23 import org.scilab.modules.scinotes.ScilabEditorPane;
24 import org.scilab.modules.scinotes.utils.ConfigSciNotesManager;
25
26 /**
27  * Class to set the font
28  * @author DIGITEO
29  * @author Calixte DENIZET
30  */
31 public class SetFontAction extends DefaultAction {
32
33     /**
34      * Constructor
35      * @param name the name of the action
36      * @param editor associated with this action
37      */
38     public SetFontAction(String name, SciNotes editor) {
39         super(name, editor);
40     }
41
42     /**
43      * DoAction
44      */
45     public void doAction() {
46         SwingScilabFontChooser fontChooser = new SwingScilabFontChooser(ConfigSciNotesManager.getFont(), false);
47         fontChooser.displayAndWait();
48
49         Font newFont = fontChooser.getSelectedFont();
50
51         if (newFont != null) {
52
53             List<String> listStylesName = ConfigSciNotesManager.getAllStyleName();
54
55             int numberOfTab = getEditor().getTabPane().getComponentCount();
56             for (int i = 0; i < numberOfTab; i++) {
57                 ScilabEditorPane textPane = getEditor().getTextPane(i);
58                 textPane.resetFont(newFont);
59                 if (textPane.getOtherPaneInSplit() != null) {
60                     textPane.getOtherPaneInSplit().resetFont(newFont);
61                 }
62             }
63             getEditor().getTextPane().setFocusable(true);
64             ConfigSciNotesManager.saveFont(newFont);
65         }
66     }
67
68     /**
69      * Create the MenuItem
70      * @param label label of the menu
71      * @param editor Editor
72      * @param key KeyStroke
73      * @return a MenuItem
74      */
75     public static MenuItem createMenu(String label, SciNotes editor, KeyStroke key) {
76         return createMenu(label, null, new SetFontAction(label, editor), key);
77     }
78 }