Remove some java warnings (redundant declarations)
[scilab.git] / scilab / modules / gui / src / java / org / scilab / modules / gui / plotbrowser / PlotBrowser.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.plotbrowser;
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 * Plot Browser.
25 * shows all objects plotted.
26 *
27 * @author Marcos CARDINOT <mcardinot@gmail.com>
28 */
29 public class PlotBrowser {
30     private static PlotBrowser instance;
31     public static SwingPlotBrowser plotBrowserTab;
32     public static Integer currentObjectID;
33
34     /**
35     * Constructor.
36     *
37     * @param objectID Enters the identification of object.
38     */
39     public PlotBrowser(Integer objectID) {
40         TextBox infobar = ScilabTextBox.createTextBox();
41         plotBrowserTab = new SwingPlotBrowser(objectID);
42         plotBrowserTab.addInfoBar(infobar);
43     }
44
45     /**
46      * Create the plot browser (as tab) instance.
47      *
48      * @param objectID Enters the identification of object.
49      * @return the instance.
50      */
51     public static SwingPlotBrowser createPlotBrowserTab(Integer objectID) {
52         if (instance == null) {
53             instance = new PlotBrowser(objectID);
54         }
55
56         return plotBrowserTab;
57     }
58
59     /**
60      * Checks if the plot browser is open.
61      *
62      * @return true if an instance of PlotBrowser already exists.
63      */
64     public static boolean isPlotBrowserOpened() {
65         return instance != null;
66     }
67
68     /**
69      * Get the plot browser singleton
70      * @return the plot browser
71      */
72     public static PlotBrowser getPlotBrowser() {
73         return instance;
74     }
75
76     /**
77     * Initializes the PlotBrowser with the docking system.
78     *
79     * @param objectID Enters the identification of object.
80     * @return Shows the PlotBrowser was generated.
81     */
82     public static PlotBrowser getPlotBrowser(Integer objectID) {
83         currentObjectID = objectID;
84         if (instance == null) {
85             boolean success = WindowsConfigurationManager.restoreUUID(SwingPlotBrowser.PLOTBROWSERUUID);
86             if (!success) {
87                 PlotBrowserTab.getPlotBrowserInstance(objectID);
88                 SwingScilabWindow window = (SwingScilabWindow) ScilabWindow.createWindow().getAsSimpleWindow();
89                 window.addTab(plotBrowserTab);
90                 window.setLocation(0, 0);
91                 window.setSize(300, 700);
92                 window.setVisible(true);
93             }
94         } else {
95             SwingScilabWindow window = (SwingScilabWindow) SwingUtilities.getAncestorOfClass
96                                        (SwingScilabWindow.class, plotBrowserTab);
97             window.setVisible(true);
98             window.toFront();
99             new SwapFigure(objectID);
100         }
101         return instance;
102     }
103
104     /**
105      * Close PlotBrowser
106      */
107     public static void closePlotBrowser() {
108         if (instance != null) {
109             instance = null;
110         }
111     }
112
113     /**
114      * Close PlotBrowser
115      */
116     public void close() {
117         ClosingOperationsManager.startClosingOperationWithoutSave((SwingScilabTab) plotBrowserTab);
118     }
119
120     /**
121      * {@inheritDoc}
122      */
123     public void setVisible(boolean status) {
124         plotBrowserTab.setVisible(status);
125     }
126 }