New Java Help Browser for Scilab.
[scilab.git] / scilab / modules / gui / src / java / org / scilab / modules / gui / tab / SimpleTab.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2007 - INRIA - Bruno JOFRET
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
16 import org.scilab.modules.gui.checkbox.CheckBox;
17 import org.scilab.modules.gui.console.Console;
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.textbox.TextBox;
31 import org.scilab.modules.gui.toolbar.ToolBar;
32 import org.scilab.modules.gui.utils.Position;
33 import org.scilab.modules.gui.utils.Size;
34
35 /**
36  * Interface for tabs in Scilab GUIs
37  * Describe all what the "widget" tab
38  * must be able to do as a GUI Component
39  * @author Bruno JOFRET
40  */
41 public interface SimpleTab {
42
43         /**
44          * Gets the Name of a tab
45          * @return the Name of the tab
46          */
47         String getName();
48
49         /**
50          * Sets the Name of a tab
51          * @param newTabName the Name we want to set to the tab
52          */
53         void setName(String newTabName);
54
55         /**
56          * We want to be able to add directly a Frame in a Tab.
57          * @param member the member to add
58          * @return the position of the frame in the member list.
59          */
60         int addMember(Frame member);
61
62         /**
63          * We want to be able to add directly a Console in a Tab.
64          * @param member the member to add
65          * @return the position of the console in the member list.
66          */
67         int addMember(Console member);
68
69         /**
70          * We want to be able to add directly a HelpBrowser in a Tab.
71          * @param member the member to add
72          * @return the position of the HelpBrowser in the member list.
73          */
74         int addMember(HelpBrowser member);
75
76         /**
77          * We want to be able to add directly a Console in a Tab.
78          * @param member the member to add
79          * @return the position of the console in the member list.
80          */
81         int addMember(Canvas member);
82
83         /**
84          * We want to be able to add directly a pushbutton in a Tab.
85          * @param member the pushbutton to add
86          * @return the position of the pushbutton in the member list.
87          */
88         int addMember(PushButton member);
89
90         /**
91          * We want to be able to add directly a editbox in a Tab.
92          * @param member the editbox to add
93          * @return the position of the editbox in the member list.
94          */
95         int addMember(EditBox member);
96
97         /**
98          * We want to be able to add directly a label in a Tab.
99          * @param member the label to add
100          * @return the position of the label in the member list.
101          */
102         int addMember(Label member);
103
104         /**
105          * We want to be able to add directly a checkbox in a Tab.
106          * @param member the checkbox to add
107          * @return the position of the checkbox in the member list.
108          */
109         int addMember(CheckBox member);
110
111         /**
112          * We want to be able to add directly a RadioButton in a Tab.
113          * @param member the RadioButton to add
114          * @return the position of the RadioButton in the member list.
115          */
116         int addMember(RadioButton member);
117
118         /**
119          * We want to be able to add directly a Slider in a Tab.
120          * @param member the Slider to add
121          * @return the position of the Slider in the member list.
122          */
123         int addMember(Slider member);
124
125         /**
126          * We want to be able to add directly a ListBox in a Tab.
127          * @param member the ListBox to add
128          * @return the position of the ListBox in the member list.
129          */
130         int addMember(ListBox member);
131
132         /**
133          * We want to be able to add directly a PopupMenu in a Tab.
134          * @param member the PopupMenu to add
135          * @return the position of the PopupMenu in the member list.
136          */
137         int addMember(PopupMenu member);
138         
139         /**
140          * We want to be able to remove directly a Canvas from a Tab.
141          * @param member canvas to remove
142          */
143         void removeMember(Canvas member);
144
145         /**
146          * Gets the size of an Tab (width and height)
147          * @return the size of the Tab
148          */
149         Size getDims();
150
151         /**
152          * Sets the size of an Tab (width and height)
153          * @param newSize the size we want to set to the Tab
154          */
155         void setDims(Size newSize);
156
157         /**
158          * Gets the position of an Tab (X-coordinate and Y-corrdinate)
159          * @return the position of the Tab
160          */
161         Position getPosition();
162
163         /**
164          * Sets the position of an Tab (X-coordinate and Y-corrdinate)
165          * @param newPosition the position we want to set to the Tab
166          */
167         void setPosition(Position newPosition);
168
169         /**
170          * Gets the visibility status of an Tab
171          * @return the visibility status of the Tab (true if the Tab is visible, false if not)
172          */
173         boolean isVisible();
174
175         /**
176          * Sets the visibility status of an Tab
177          * @param newVisibleState the visibility status we want to set for the Tab
178          *                      (true if the Tab is visible, false if not)
179          */
180         void setVisible(boolean newVisibleState);
181
182         /**
183          * Draws an Tab
184          */
185         void draw();
186         
187         /**
188          * Get the current status of the Tab in its parent
189          * @return true is the tab is the tab currently "on top" in its parent
190          */
191         boolean isCurrentTab();
192         
193         /**
194          * Set the parent window id for this tab
195          * @param id the id of the parent window
196          */
197         void setParentWindowId(int id);
198         
199         /**
200          * Get the parent window id for this tab
201          * @return the id of the parent window
202          */
203         int getParentWindowId();
204
205         /**
206          * Get the MenuBar associated to this tab
207          * @return MenuBar the MenuBar associated.
208          */
209         MenuBar getMenuBar();
210         
211         /**
212          * Set the MenuBar associated to this tab
213          * @param newMenuBar : the MenuBar to associate.
214          */
215         void setMenuBar(MenuBar newMenuBar);
216         
217         /**
218          * Get the ToolBar associated to this tab
219          * @return ToolBar the ToolBar associated.
220          */
221         ToolBar getToolBar();
222         
223         /**
224          * Set the ToolBar associated to this tab
225          * @param newToolBar : the ToolBar to associate.
226          */
227         void setToolBar(ToolBar newToolBar);
228         
229         /**
230          * Get the InfoBar associated to this tab
231          * @return infoBar the InfoBar associated.
232          */
233         TextBox getInfoBar();
234         
235         /**
236          * Set the InfoBar associated to this tab
237          * @param newInfoBar the InfoBar to associate.
238          */
239         void setInfoBar(TextBox newInfoBar);
240         
241         /**
242          * Set the callback of the tab
243          * @param callback the CallBack to set
244          */
245         void setCallback(CallBack callback);
246
247 }