* Bug #12352 fixed - Critical error when closing a scope windows during
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / actions / HighlightCurrentLineAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO - Sylvestre KOUMAR
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 package org.scilab.modules.scinotes.actions;
13
14 import java.beans.PropertyChangeEvent;
15 import java.beans.PropertyChangeListener;
16
17 import javax.swing.JCheckBoxMenuItem;
18 import javax.swing.KeyStroke;
19
20 import org.scilab.modules.gui.checkboxmenuitem.CheckBoxMenuItem;
21 import org.scilab.modules.scinotes.SciNotes;
22 import org.scilab.modules.scinotes.utils.ConfigSciNotesManager;
23
24 /**
25  * HighlightCurrentLineAction Class
26  * @author Sylvestre KOUMAR
27  *
28  */
29 public final class HighlightCurrentLineAction extends DefaultCheckAction {
30
31     /**
32      * serialVersionUID
33      */
34     private static final long serialVersionUID = -1489762718469013039L;
35
36     /**
37      * Constructor
38      * @param name the name of the action
39      * @param editor SciNotes
40      */
41     public HighlightCurrentLineAction(String name, SciNotes editor) {
42         super(name, editor);
43     }
44
45     /**
46      * doAction
47      */
48     public void doAction() {
49         SciNotes.enableHighlightedLine(this.getState());
50         ConfigSciNotesManager.saveHighlightState(this.getState());
51     }
52
53     /**
54      * createCheckBoxMenu
55      * @param label label of the menu
56      * @param editor SciNotes
57      * @param key KeyStroke
58      * @return CheckBoxMenuItem
59      */
60     public static CheckBoxMenuItem createMenu(String label, SciNotes editor, KeyStroke key) {
61         final CheckBoxMenuItem cb = createCheckBoxMenu(label, null, new HighlightCurrentLineAction(label, editor), key);
62         cb.setChecked(ConfigSciNotesManager.getHighlightState());
63         ((JCheckBoxMenuItem) cb.getAsSimpleCheckBoxMenuItem()).addPropertyChangeListener(new PropertyChangeListener() {
64                 public void propertyChange(PropertyChangeEvent e) {
65                     cb.setChecked(ConfigSciNotesManager.getHighlightState());
66                 }
67             });
68
69         return cb;
70     }
71 }