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