Refactorization of the management of the actions in menus, button, shortcuts
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / actions / CloseAllButThisAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO -  Allan CORNET
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
17 import org.scilab.modules.gui.menuitem.MenuItem;
18 import org.scilab.modules.scinotes.SciNotes;
19
20 /**
21  * CloseAllButThisAction Class
22  * @author Allan CORNET
23  *
24  */
25 public final class CloseAllButThisAction extends DefaultAction {
26
27     /**
28      * serialVersionUID
29      */
30     private static final long serialVersionUID = -9052217229357472945L;
31
32     /**
33      * Constructor
34      * @param name the name of the action
35      * @param editor SciNotes
36      */
37     public CloseAllButThisAction(String name, SciNotes editor) {
38         super(name, editor);
39     }
40
41     /**
42      * doAction
43      */
44     public void doAction() {
45         int nbTabCount = getEditor().getTabPane().getTabCount();
46         boolean bContinue = true;
47         if (nbTabCount > 1) {
48             while ((getEditor().getTabPane().getTabCount() != 1) & (bContinue)) {
49                 int currentIndex = getEditor().getTabPane().getSelectedIndex();
50                 if (currentIndex != 0) {
51                     bContinue = getEditor().closeTabAt(0);
52                 } else {
53                     bContinue = getEditor().closeTabAt(1);
54                 }
55             }
56         }
57
58         // Close the last opened file create a new file named "Untitled 1"
59         if (getEditor().getTabPane().getTabCount() == 0) {
60             getEditor().addEmptyTab();
61         }
62     }
63
64     /**
65      * createMenu
66      * @param label label of the menu
67      * @param editor SciNotes
68      * @param key KeyStroke
69      * @return MenuItem
70      */
71     public static MenuItem createMenu(String label, SciNotes editor, KeyStroke key) {
72         return createMenu(label, null, new CloseAllButThisAction(label, editor), key);
73     }
74 }