1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2011 - DIGITEO - Calixte DENIZET
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15 
16 package org.scilab.modules.ui_data.filebrowser;
17 
18 import org.scilab.modules.gui.bridge.tab.SwingScilabDockablePanel;
19 import org.scilab.modules.gui.bridge.toolbar.SwingScilabToolBar;
20 import org.scilab.modules.gui.bridge.window.SwingScilabWindow;
21 import org.scilab.modules.gui.menu.Menu;
22 import org.scilab.modules.gui.menu.ScilabMenu;
23 import org.scilab.modules.gui.menubar.MenuBar;
24 import org.scilab.modules.gui.menubar.ScilabMenuBar;
25 import org.scilab.modules.gui.tab.SimpleTab;
26 import org.scilab.modules.gui.textbox.TextBox;
27 import org.scilab.modules.gui.toolbar.ScilabToolBar;
28 import org.scilab.modules.gui.toolbar.ToolBar;
29 import org.scilab.modules.gui.utils.WindowsConfigurationManager;
30 import org.scilab.modules.ui_data.actions.HelpAction;
31 import org.scilab.modules.ui_data.filebrowser.actions.CloseAction;
32 import org.scilab.modules.ui_data.filebrowser.actions.GoToHomeAction;
33 import org.scilab.modules.ui_data.filebrowser.actions.GoToSCIAction;
34 import org.scilab.modules.ui_data.utils.UiDataMessages;
35 
36 /**
37  * Swing implementation of Scilab Variable browser
38  * uses JTable
39  * @author Calixte DENIZET
40  */
41 @SuppressWarnings(value = { "serial" })
42 public final class SwingScilabFileBrowser extends SwingScilabDockablePanel {
43 
44     public static final String FILEBROWSERUUID = "3b649047-6a71-4998-bd8e-00d367a4793d";
45 
46     private ScilabFileBrowserComponent filebrowser;
47 
48     /**
49      * Create a JTable with data Model.
50      */
SwingScilabFileBrowser()51     public SwingScilabFileBrowser() {
52         super(UiDataMessages.FILE_BROWSER, FILEBROWSERUUID);
53         setAssociatedXMLIDForHelp("filebrowser");
54         addMenuBar(createMenuBar());
55         filebrowser = new ScilabFileBrowserComponent();
56 
57         ToolBar toolBar = ScilabToolBar.createToolBar();
58         SwingScilabToolBar stb = (SwingScilabToolBar) toolBar.getAsSimpleToolBar();
59         stb.add(filebrowser.getPreviousButton());
60         stb.add(filebrowser.getNextButton());
61         stb.addSeparator();
62         stb.add(GoToHomeAction.createButton());
63         stb.add(GoToSCIAction.createButton());
64         stb.addSeparator();
65         stb.add(HelpAction.createButton(UiDataMessages.HELP));
66 
67         addToolBar(toolBar);
68         setContentPane(filebrowser);
69         WindowsConfigurationManager.restorationFinished(this);
70     }
71 
72     /**
73      * Set the base directory
74      * @param baseDir the base directory
75      */
setBaseDir(String baseDir)76     public void setBaseDir(String baseDir) {
77         filebrowser.setBaseDir(baseDir);
78     }
79 
80     /**
81      * {@inheritDoc}
82      */
getAsSimpleTab()83     public SimpleTab getAsSimpleTab() {
84         return this;
85     }
86 
87     /**
88      * {@inheritDoc}
89      */
getParentWindow()90     public SwingScilabWindow getParentWindow() {
91         return SwingScilabWindow.allScilabWindows.get(getParentWindowId());
92     }
93 
94     /**
95      * {@inheritDoc}
96      */
addInfoBar(TextBox infoBarToAdd)97     public void addInfoBar(TextBox infoBarToAdd) {
98         setInfoBar(infoBarToAdd);
99     }
100 
101     /**
102      * {@inheritDoc}
103      */
addMenuBar(MenuBar menuBarToAdd)104     public void addMenuBar(MenuBar menuBarToAdd) {
105         setMenuBar(menuBarToAdd);
106     }
107 
108     /**
109      * {@inheritDoc}
110      */
addToolBar(ToolBar toolBarToAdd)111     public void addToolBar(ToolBar toolBarToAdd) {
112         setToolBar(toolBarToAdd);
113     }
114 
115     /**
116      * Create History Browser MenuBar
117      * @return the menu bar
118      */
createMenuBar()119     private static MenuBar createMenuBar() {
120         MenuBar menuBar = ScilabMenuBar.createMenuBar();
121         Menu fileMenu = ScilabMenu.createMenu();
122         fileMenu.setText(UiDataMessages.FILE);
123         fileMenu.setMnemonic('F');
124 
125         fileMenu.add(CloseAction.createMenu());
126 
127         menuBar.add(fileMenu);
128 
129         Menu helpMenu = ScilabMenu.createMenu();
130         helpMenu.setText("?");
131         helpMenu.setMnemonic('?');
132         helpMenu.add(HelpAction.createMenuItem(UiDataMessages.HELP));
133         menuBar.add(helpMenu);
134 
135         return menuBar;
136     }
137 }
138