New Java Help Browser for Scilab.
[scilab.git] / scilab / modules / gui / src / java / org / scilab / modules / gui / tab / ScilabTabBridge.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2007 - INRIA - Vincent Couvert
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.gui.tab;
14
15 import org.scilab.modules.gui.checkbox.CheckBox;
16 import org.scilab.modules.gui.console.Console;
17 import org.scilab.modules.gui.bridge.tab.SwingScilabTab;
18 import org.scilab.modules.gui.canvas.Canvas;
19 import org.scilab.modules.gui.editbox.EditBox;
20 import org.scilab.modules.gui.events.callback.CallBack;
21 import org.scilab.modules.gui.frame.Frame;
22 import org.scilab.modules.gui.helpbrowser.HelpBrowser;
23 import org.scilab.modules.gui.label.Label;
24 import org.scilab.modules.gui.listbox.ListBox;
25 import org.scilab.modules.gui.menubar.MenuBar;
26 import org.scilab.modules.gui.popupmenu.PopupMenu;
27 import org.scilab.modules.gui.pushbutton.PushButton;
28 import org.scilab.modules.gui.radiobutton.RadioButton;
29 import org.scilab.modules.gui.slider.Slider;
30 import org.scilab.modules.gui.utils.Position;
31 import org.scilab.modules.gui.utils.Size;
32
33 /**
34  * Bridge for Scilab tabs in GUIs
35  * @author Vincent COUVERT
36  */
37 public class ScilabTabBridge {
38         
39         /**
40          * Constructor
41          */
42         protected ScilabTabBridge() {
43                 throw new UnsupportedOperationException(); /* Prevents calls from subclass */
44         };
45
46         /**
47          * Creates a Scilab tab
48          * @param name the name of the tab (used to identify it)
49          * @return the created tab
50          */
51         public static SimpleTab createTab(String name) {
52                 return new SwingScilabTab(name);
53         }
54
55         /**
56          * Draws a Scilab tab
57          * @param tab the tab to draw
58          */
59         public static void draw(Tab tab) {
60                 tab.getAsSimpleTab().draw();
61         }
62
63         /**
64          * Gets the dimensions (width and height) of a Scilab tab
65          * @param tab the tab we want to get the dimensions of
66          * @return the dimensions of the tab
67          */
68         public static Size getDims(Tab tab) {
69                 return tab.getAsSimpleTab().getDims();
70         }
71
72         /**
73          * Sets the dimensions (width and height) of a Scilab tab
74          * @param tab the tab we want to set the dimensions of
75          * @param newTabSize the dimensions we want to set to the tab
76          */
77         public static void setDims(Tab tab, Size newTabSize) {
78                 tab.getAsSimpleTab().setDims(newTabSize);
79         }
80
81         /**
82          * Gets the position (X-coordinate and Y-coordinate) of a Scilab tab
83          * @param tab the tab we want to get the position of
84          * @return the position of the tab
85          */
86         public static Position getPosition(Tab tab) {
87                 return tab.getAsSimpleTab().getPosition();
88         }
89
90         /**
91          * Sets the position (X-coordinate and Y-coordinate) of a Scilab tab
92          * @param tab the tab we want to set the position of
93          * @param newTabPosition the position we want to set to the tab
94          */
95         public static void setPosition(Tab tab, Position newTabPosition) {
96                 tab.getAsSimpleTab().setPosition(newTabPosition);
97         }
98
99         /**
100          * Gets the Name of a Scilab tab
101          * @param tab the tab we want to get the title of
102          * @return the title of the tab
103          */
104         public static String getName(Tab tab) {
105                 return tab.getAsSimpleTab().getName();
106         }
107
108         /**
109          * Sets the name of a Scilab tab
110          * @param tab the tab we want to set the name of
111          * @param newTabName the name to set to the tab
112          */
113         public static void setName(Tab tab, String newTabName) {
114                 tab.getAsSimpleTab().setName(newTabName);
115         }
116
117         /**
118          * Gets the visibility status of a Siclab tab
119          * @param tab the tab we want to get the visibility status of
120          * @return the visibility status of the tab (true if the tab is visible, false if not)
121          */
122         public static boolean isVisible(Tab tab) {
123                 return tab.getAsSimpleTab().isVisible();
124         }
125
126         /**
127          * Sets the visibility status of a Siclab tab
128          * @param tab the tab we want to set the visibility status of
129          * @param newVisibleState the visibility status to set to the tab (true to set the tab visible, false else)
130          */
131         public static void setVisible(Tab tab, boolean newVisibleState) {
132                 tab.getAsSimpleTab().setVisible(newVisibleState);
133         }
134
135         /**
136          * Add a member (dockable element) to a tab and returns the index of this member
137          * @param tab the tab where we want to add the member
138          * @param member the member to add
139          * @return index of member
140          */
141         public static int addMember(Tab tab, Frame member) {
142                 return tab.getAsSimpleTab().addMember(member);
143         }
144
145         /**
146          * Add a member (dockable element) to a tab and returns the index of this member
147          * @param tab the tab where we want to add the member
148          * @param member the member to add
149          * @return index of member
150          */
151         public static int addMember(Tab tab, Console member) {
152                 return tab.getAsSimpleTab().addMember(member);
153         }
154
155         /**
156          * We want to be able to add directly a HelpBrowser in a Tab.
157          * @param tab the tab where we want to add the member
158          * @param member the member to add
159          * @return the position of the HelpBrowser in the member list.
160          */
161         public static int addMember(Tab tab, HelpBrowser member) {
162                 return tab.getAsSimpleTab().addMember(member);
163         }
164
165         /**
166          * Add a member (dockable element) to a tab and returns the index of this member
167          * @param tab the tab where we want to add the member
168          * @param member the member to add
169          * @return index of member
170          */
171         public static int addMember(Tab tab, Canvas member) {
172                 return (tab.getAsSimpleTab().addMember(member));
173         }
174
175         /**
176          * Add a member (dockable element) to a tab and returns the index of this member
177          * @param tab the tab which we want to add the pushbutton to
178          * @param member the pushbutton to add
179          * @return the position of the pushbutton in the member list.
180          */
181         public static int addMember(Tab tab, PushButton member) {
182                 return (tab.getAsSimpleTab().addMember(member));
183         }
184
185         /**
186          * Add a member (dockable element) to a tab and returns the index of this member
187          * @param tab the tab which we want to add the EditBox to
188          * @param member the EditBox to add
189          * @return the position of the EditBox in the member list.
190          */
191         public static int addMember(Tab tab, EditBox member) {
192                 return (tab.getAsSimpleTab().addMember(member));
193         }
194
195         /**
196          * Add a member (dockable element) to a tab and returns the index of this member
197          * @param tab the tab which we want to add the Label to
198          * @param member the Label to add
199          * @return the position of the Label in the member list.
200          */
201         public static int addMember(Tab tab, Label member) {
202                 return (tab.getAsSimpleTab().addMember(member));
203         }
204
205         /**
206          * Add a member (dockable element) to a tab and returns the index of this member
207          * @param tab the tab which we want to add the CheckBox to
208          * @param member the CheckBox to add
209          * @return the position of the CheckBox in the member list.
210          */
211         public static int addMember(Tab tab, CheckBox member) {
212                 return (tab.getAsSimpleTab().addMember(member));
213         }
214
215         /**
216          * Add a member (dockable element) to a tab and returns the index of this member
217          * @param tab the tab which we want to add the RadioButton to
218          * @param member the RadioButton to add
219          * @return the position of the RadioButton in the member list.
220          */
221         public static int addMember(Tab tab, RadioButton member) {
222                 return (tab.getAsSimpleTab().addMember(member));
223         }
224
225         /**
226          * Add a member (dockable element) to a tab and returns the index of this member
227          * @param tab the tab which we want to add the Slider to
228          * @param member the Slider to add
229          * @return the position of the Slider in the member list.
230          */
231         public static int addMember(Tab tab, Slider member) {
232                 return (tab.getAsSimpleTab().addMember(member));
233         }
234
235         /**
236          * Add a member (dockable element) to a tab and returns the index of this member
237          * @param tab the tab which we want to add the ListBox to
238          * @param member the ListBox to add
239          * @return the position of the ListBox in the member list.
240          */
241         public static int addMember(Tab tab, ListBox member) {
242                 return (tab.getAsSimpleTab().addMember(member));
243         }
244
245         /**
246          * Add a member (dockable element) to a tab and returns the index of this member
247          * @param tab the tab which we want to add the PopupMenu to
248          * @param member the PopupMenu to add
249          * @return the position of the PopupMenu in the member list.
250          */
251         public static int addMember(Tab tab, PopupMenu member) {
252                 return (tab.getAsSimpleTab().addMember(member));
253         }
254
255         /**
256          * Sets a MenuBar to a Scilab tab
257          * @param tab the tab which we want to add the MenuBar to
258          * @param newMenuBar the MenuBar to add to the tab
259          */
260         public static void addMenuBar(Tab tab, MenuBar newMenuBar) {
261                 tab.addMenuBar(newMenuBar);
262         }
263         
264         /**
265          * We want to be able to remove directly a Canvas from a Tab.
266          * @param tab the tab from which we want to remove the Canvas from
267          * @param member canvas to remove 
268          */
269         public static void removeMember(Tab tab, Canvas member) {
270                 tab.getAsSimpleTab().removeMember(member);
271         }
272
273         /**
274          * Get the current status of the Tab in its parent
275          * @param tab the tab which we want to add the MenuBar to
276          * @return true is the tab is the tab currently "on top" in its parent
277          */
278         public static boolean isCurrentTab(Tab tab) {
279                 return (tab.getAsSimpleTab().isCurrentTab());
280         }
281
282         /**
283          * Set the parent window id for this tab
284          * @param tab the tab which we want to set the parent window id
285          * @param id the id of the parent window
286          */
287         public static void setParentWindowId(Tab tab, int id) {
288                 tab.getAsSimpleTab().setParentWindowId(id);
289         }
290         
291         /**
292          * Get the parent window id for this tab
293          * @param tab the tab which we want to get the parent window id
294          * @return the id of the parent window
295          */
296         public static int getParentWindowId(Tab tab) {
297                 return tab.getAsSimpleTab().getParentWindowId();
298         }
299         
300         /**
301          * Set the callback of the tab
302          * @param tab the tab which we want to set the callback of
303          * @param callback the CallBack to set
304          */
305         public static void setCallback(Tab tab, CallBack callback) {
306                 tab.getAsSimpleTab().setCallback(callback);
307         }
308
309 }