Remove some java warnings (redundant declarations)
[scilab.git] / scilab / modules / gui / src / java / org / scilab / modules / gui / ged / Inspector.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2012 - Marcos CARDINOT
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.gui.ged;
13
14 import javax.swing.SwingUtilities;
15 import org.scilab.modules.gui.bridge.tab.SwingScilabTab;
16 import org.scilab.modules.gui.bridge.window.SwingScilabWindow;
17 import org.scilab.modules.gui.textbox.ScilabTextBox;
18 import org.scilab.modules.gui.textbox.TextBox;
19 import org.scilab.modules.gui.utils.ClosingOperationsManager;
20 import org.scilab.modules.gui.utils.WindowsConfigurationManager;
21 import org.scilab.modules.gui.window.ScilabWindow;
22
23 /**
24 * Main properties window - Light GED.
25 * Receive the classes of graphic objects (JPanels).
26 *
27 * @author Marcos CARDINOT <mcardinot@gmail.com>
28 */
29 public class Inspector {
30     private static Inspector instance;
31     private static SwingInspector inspectorTab;
32     private static GEDView gedView;
33
34     /**
35     * Constructor.
36     *
37     * @param selected Indicates which property window will open.
38     * @param objectID Enters the identification of object.
39     */
40     public Inspector(Integer objectID) {
41         TextBox infobar = ScilabTextBox.createTextBox();
42         inspectorTab = new SwingInspector(objectID);
43         inspectorTab.addInfoBar(infobar);
44         gedView = new GEDView();
45     }
46
47     /**
48      * Create the inspector (as tab) instance
49      * @param selected Indicates which property window will open initially.
50      * @param objectID Enters the identification of object.
51      * @return the instance.
52      */
53     public static SwingInspector createInspectorTab(Integer objectID) {
54         if (instance == null) {
55             instance = new Inspector(objectID);
56         }
57
58         return inspectorTab;
59     }
60
61     /**
62      * Checks if the lightGED is open.
63      *
64      * @return true if an instance of Inspector already exists.
65      */
66     public static boolean isInspectorOpened() {
67         return instance != null;
68     }
69
70     /**
71      * Get the inspector singleton
72      * @return the inspector
73      */
74     public static Inspector getInspector() {
75         return instance;
76     }
77
78     /**
79     * Initializes the Inspector with the docking system.
80     *
81     * @param objectID Enters the identification of object.
82     * @return Shows the lightGED was generated.
83     */
84     public static Inspector getInspector(Integer objectID) {
85         if (instance == null) {
86             boolean success = WindowsConfigurationManager.restoreUUID(SwingInspector.INSPECTORUUID);
87             if (!success) {
88                 InspectorTab.getInspectorInstance(objectID);
89                 SwingScilabWindow window = (SwingScilabWindow) ScilabWindow.createWindow().getAsSimpleWindow();
90                 window.addTab(inspectorTab);
91                 window.setLocation(0, 0);
92                 window.setSize(300, 700);
93                 window.setVisible(true);
94             }
95         } else {
96             SwingScilabWindow window = (SwingScilabWindow) SwingUtilities.getAncestorOfClass
97                                        (SwingScilabWindow.class, inspectorTab);
98             window.setVisible(true);
99             window.toFront();
100             new SwapObject(objectID);
101         }
102         return instance;
103     }
104
105     /**
106      * Close Inspector
107      */
108     public static void closeInspector() {
109         if (instance != null) {
110             instance = null;
111             gedView.close();
112         }
113     }
114
115     /**
116      * Close Inspector
117      */
118     public void close() {
119         ClosingOperationsManager.startClosingOperationWithoutSave((SwingScilabTab) inspectorTab);
120         gedView.close();
121     }
122
123     /**
124      * {@inheritDoc}
125      */
126     public void setVisible(boolean status) {
127         inspectorTab.setVisible(status);
128     }
129 }