833a0478f4ca87bb6439590729d3ee8efc2fb43f
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / actions / SuppressCommentsAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2011 - 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.1-en.txt
10  *
11  */
12
13 package org.scilab.modules.scinotes.actions;
14
15 import java.beans.PropertyChangeEvent;
16 import java.beans.PropertyChangeListener;
17
18 import javax.swing.JCheckBoxMenuItem;
19 import javax.swing.KeyStroke;
20 import javax.swing.SwingUtilities;
21
22 import org.scilab.modules.gui.checkboxmenuitem.CheckBoxMenuItem;
23 import org.scilab.modules.scinotes.SciNotes;
24 import org.scilab.modules.scinotes.utils.ConfigSciNotesManager;
25
26 /**
27  * SuppressCommentsAction Class
28  * @author Calixte DENIZET
29  *
30  */
31 public final class SuppressCommentsAction extends DefaultCheckAction  {
32
33     /**
34      * serialVersionUID
35      */
36     private static final long serialVersionUID = -1L;
37
38     /**
39      * Constructor
40      * @param name the name of the action
41      * @param editor SciNotes
42      */
43     public SuppressCommentsAction(String name, SciNotes editor) {
44         super(name, editor);
45     }
46
47     /**
48      * doAction
49      */
50     public void doAction() {
51         SwingUtilities.invokeLater(new Runnable() {
52             public void run() {
53                 SciNotes.setSuppressComments(SuppressCommentsAction.this.getState());
54                 ConfigSciNotesManager.saveSuppressComments(SuppressCommentsAction.this.getState());
55             }
56         });
57     }
58
59     /**
60      * createCheckBoxMenu
61      * @param label label of the menu
62      * @param editor SciNotes
63      * @param key KeyStroke
64      * @return CheckBoxMenuItem
65      */
66     public static CheckBoxMenuItem createMenu(String label, SciNotes editor, KeyStroke key) {
67         final CheckBoxMenuItem sca = createCheckBoxMenu(label, null, new SuppressCommentsAction(label, editor), key);
68         sca.setChecked(ConfigSciNotesManager.getSuppressComments());
69         ((JCheckBoxMenuItem) sca.getAsSimpleCheckBoxMenuItem()).addPropertyChangeListener(new PropertyChangeListener() {
70             public void propertyChange(PropertyChangeEvent e) {
71                 sca.setChecked(ConfigSciNotesManager.getSuppressComments());
72             }
73         });
74
75         return sca;
76     }
77 }