Desktop: Add a button in dockbar to get the help about the component
[scilab.git] / scilab / modules / ui_data / src / java / org / scilab / modules / ui_data / filebrowser / SwingScilabFileBrowser.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2011 - DIGITEO - 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-en.txt
10  *
11  */
12
13 package org.scilab.modules.ui_data.filebrowser;
14
15 import org.scilab.modules.action_binding.highlevel.ScilabInterpreterManagement.InterpreterException;
16 import org.scilab.modules.gui.bridge.tab.SwingScilabTab;
17 import org.scilab.modules.gui.checkboxmenuitem.CheckBoxMenuItem;
18 import org.scilab.modules.gui.menu.Menu;
19 import org.scilab.modules.gui.menu.ScilabMenu;
20 import org.scilab.modules.gui.menubar.MenuBar;
21 import org.scilab.modules.gui.menubar.ScilabMenuBar;
22 import org.scilab.modules.gui.messagebox.ScilabModalDialog;
23 import org.scilab.modules.gui.messagebox.ScilabModalDialog.IconType;
24 import org.scilab.modules.gui.pushbutton.PushButton;
25 import org.scilab.modules.gui.tab.SimpleTab;
26 import org.scilab.modules.gui.tab.Tab;
27 import org.scilab.modules.gui.textbox.TextBox;
28 import org.scilab.modules.gui.toolbar.ScilabToolBar;
29 import org.scilab.modules.gui.toolbar.ToolBar;
30 import org.scilab.modules.gui.utils.UIElementMapper;
31 import org.scilab.modules.gui.utils.WindowsConfigurationManager;
32 import org.scilab.modules.gui.window.Window;
33 import org.scilab.modules.ui_data.utils.UiDataMessages;
34 import org.scilab.modules.ui_data.filebrowser.actions.CloseAction;
35 import org.scilab.modules.ui_data.filebrowser.actions.GoToHomeAction;
36 import org.scilab.modules.ui_data.filebrowser.actions.GoToSCIAction;
37
38 /**
39  * Swing implementation of Scilab Variable browser
40  * uses JTable
41  * @author Calixte DENIZET
42  */
43 public final class SwingScilabFileBrowser extends SwingScilabTab implements Tab {
44
45     public static final String FILEBROWSERUUID = "3b649047-6a71-4998-bd8e-00d367a4793d";
46
47     private ScilabFileBrowserComponent filebrowser;
48
49     /**
50      * Create a JTable with data Model.
51      * @param columnsName : Titles of JTable columns.
52      */
53     public SwingScilabFileBrowser() {
54         super(UiDataMessages.FILE_BROWSER, FILEBROWSERUUID);
55         setAssociatedXMLIDForHelp("filebrowser");
56         addMenuBar(createMenuBar());
57         filebrowser = new ScilabFileBrowserComponent();
58
59         ToolBar toolBar = ScilabToolBar.createToolBar();
60         toolBar.add(filebrowser.getPreviousButton());
61         toolBar.add(filebrowser.getNextButton());
62         toolBar.addSeparator();
63         toolBar.add(GoToHomeAction.createButton());
64         toolBar.add(GoToSCIAction.createButton());
65
66         addToolBar(toolBar);
67         setContentPane(filebrowser);
68         WindowsConfigurationManager.restorationFinished(this);
69     }
70
71     /**
72      * Set the base directory
73      * @param baseDir the base directory
74      */
75     public void setBaseDir(String baseDir) {
76         filebrowser.setBaseDir(baseDir);
77     }
78
79     /**
80      * {@inheritDoc}
81      */
82     public SimpleTab getAsSimpleTab() {
83         return this;
84     }
85
86     /**
87      * {@inheritDoc}
88      */
89     public Window getParentWindow() {
90         return (Window) UIElementMapper.getCorrespondingUIElement(getParentWindowId());
91     }
92
93     /**
94      * {@inheritDoc}
95      */
96     public void addInfoBar(TextBox infoBarToAdd) {
97         setInfoBar(infoBarToAdd);
98     }
99
100     /**
101      * {@inheritDoc}
102      */
103     public void addMenuBar(MenuBar menuBarToAdd) {
104         setMenuBar(menuBarToAdd);
105     }
106
107     /**
108      * {@inheritDoc}
109      */
110     public void addToolBar(ToolBar toolBarToAdd) {
111         setToolBar(toolBarToAdd);
112     }
113
114     /**
115      * Create History Browser MenuBar
116      * @return the menu bar
117      */
118     private static MenuBar createMenuBar() {
119         MenuBar menuBar = ScilabMenuBar.createMenuBar();
120         Menu fileMenu = ScilabMenu.createMenu();
121         fileMenu.setText(UiDataMessages.FILE);
122         fileMenu.setMnemonic('F');
123
124         fileMenu.add(CloseAction.createMenu());
125
126         menuBar.add(fileMenu);
127
128         return menuBar;
129     }
130 }