[Clean] Remove old ScilabUiTable
[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  * Copyright (C) 2009 - DIGITEO - Sylvestre Koumar
5  *
6  * This file must be used under the terms of the CeCILL.
7  * This source file is licensed as described in the file COPYING, which
8  * you should have received as part of this distribution.  The terms
9  * are also available at
10  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
11  *
12  */
13
14 package org.scilab.modules.gui.tab;
15
16 import org.scilab.modules.gui.bridge.tab.SwingScilabDockablePanel;
17 import org.scilab.modules.gui.canvas.Canvas;
18 import org.scilab.modules.gui.console.Console;
19 import org.scilab.modules.gui.events.callback.CommonCallBack;
20 import org.scilab.modules.gui.helpbrowser.HelpBrowser;
21 import org.scilab.modules.gui.menubar.MenuBar;
22 import org.scilab.modules.gui.uidisplaytree.UiDisplayTree;
23 import org.scilab.modules.gui.tree.Tree;
24 import org.scilab.modules.gui.utils.Position;
25 import org.scilab.modules.gui.utils.Size;
26
27 /**
28  * Bridge for Scilab tabs in GUIs
29  * @author Vincent COUVERT
30  */
31 public class ScilabTabBridge {
32
33     /**
34      * Constructor
35      */
36     protected ScilabTabBridge() {
37         throw new UnsupportedOperationException(); /* Prevents calls from subclass */
38     };
39
40     /**
41      * Creates a Scilab tab
42      * @param name the name of the tab (used to identify it)
43      * @return the created tab
44      */
45     public static SimpleTab createTab(String name) {
46         return new SwingScilabDockablePanel(name);
47     }
48
49     /**
50      * Creates a Scilab tab
51      * @param name the name of the tab (used to identify it)
52      * @return the created tab
53      */
54     public static SimpleTab createTab(String name, String uuid) {
55         return new SwingScilabDockablePanel(name, uuid);
56     }
57
58     /**
59      * Creates a Scilab tab able to display a figure handle
60      * @param name the name of the tab (used to identify it)
61      * @param figureId id of the displayed figure
62      * @return the created tab
63      */
64     public static SimpleTab createTab(String name, int figureId) {
65         return new SwingScilabDockablePanel(name, figureId);
66     }
67
68     /**
69      * Draws a Scilab tab
70      * @param tab the tab to draw
71      */
72     public static void draw(Tab tab) {
73         tab.getAsSimpleTab().draw();
74     }
75
76     /**
77      * Gets the dimensions (width and height) of a Scilab tab
78      * @param tab the tab we want to get the dimensions of
79      * @return the dimensions of the tab
80      */
81     public static Size getDims(Tab tab) {
82         return tab.getAsSimpleTab().getDims();
83     }
84
85     /**
86      * Sets the dimensions (width and height) of a Scilab tab
87      * @param tab the tab we want to set the dimensions of
88      * @param newTabSize the dimensions we want to set to the tab
89      */
90     public static void setDims(Tab tab, Size newTabSize) {
91         tab.getAsSimpleTab().setDims(newTabSize);
92     }
93
94     /**
95      * Gets the position (X-coordinate and Y-coordinate) of a Scilab tab
96      * @param tab the tab we want to get the position of
97      * @return the position of the tab
98      */
99     public static Position getPosition(Tab tab) {
100         return tab.getAsSimpleTab().getPosition();
101     }
102
103     /**
104      * Sets the position (X-coordinate and Y-coordinate) of a Scilab tab
105      * @param tab the tab we want to set the position of
106      * @param newTabPosition the position we want to set to the tab
107      */
108     public static void setPosition(Tab tab, Position newTabPosition) {
109         tab.getAsSimpleTab().setPosition(newTabPosition);
110     }
111
112     /**
113      * Gets the Name of a Scilab tab
114      * @param tab the tab we want to get the title of
115      * @return the title of the tab
116      */
117     public static String getName(Tab tab) {
118         return tab.getAsSimpleTab().getName();
119     }
120
121     /**
122      * Sets the name of a Scilab tab
123      * @param tab the tab we want to set the name of
124      * @param newTabName the name to set to the tab
125      */
126     public static void setName(Tab tab, String newTabName) {
127         tab.getAsSimpleTab().setName(newTabName);
128     }
129
130     /**
131      * Gets the visibility status of a Siclab tab
132      * @param tab the tab we want to get the visibility status of
133      * @return the visibility status of the tab (true if the tab is visible, false if not)
134      */
135     public static boolean isVisible(Tab tab) {
136         return tab.getAsSimpleTab().isVisible();
137     }
138
139     /**
140      * Sets the visibility status of a Siclab tab
141      * @param tab the tab we want to set the visibility status of
142      * @param newVisibleState the visibility status to set to the tab (true to set the tab visible, false else)
143      */
144     public static void setVisible(Tab tab, boolean newVisibleState) {
145         tab.getAsSimpleTab().setVisible(newVisibleState);
146     }
147
148     /**
149      * Add a member (dockable element) to a tab and returns the index of this member
150      * @param tab the tab where we want to add the member
151      * @param member the member to add
152      * @return index of member
153      */
154     public static int addMember(Tab tab, Console member) {
155         return tab.getAsSimpleTab().addMember(member);
156     }
157
158     /**
159      * We want to be able to add directly a HelpBrowser in a Tab.
160      * @param tab the tab where we want to add the member
161      * @param member the member to add
162      * @return the position of the HelpBrowser in the member list.
163      */
164     public static int addMember(Tab tab, HelpBrowser member) {
165         return tab.getAsSimpleTab().addMember(member);
166     }
167
168     /**
169      * Add a member (dockable element) to a tab and returns the index of this member
170      * @param tab the tab where we want to add the member
171      * @param member the member to add
172      * @return index of member
173      */
174     public static int addMember(Tab tab, Canvas member) {
175         return (tab.getAsSimpleTab().addMember(member));
176     }
177
178     public static int addMember(Tab tab, UiDisplayTree member) {
179         return (tab.getAsSimpleTab().addMember(member));
180     }
181     public static void removeMember(Tab tab, UiDisplayTree member) {
182         tab.getAsSimpleTab().removeMember(member);
183     }
184
185     /**
186      * Sets a MenuBar to a Scilab tab
187      * @param tab the tab which we want to add the MenuBar to
188      * @param newMenuBar the MenuBar to add to the tab
189      */
190     public static void addMenuBar(Tab tab, MenuBar newMenuBar) {
191         tab.addMenuBar(newMenuBar);
192     }
193
194     /**
195      * We want to be able to remove directly a Canvas from a Tab.
196      * @param tab the tab from which we want to remove the Canvas from
197      * @param member canvas to remove
198      */
199     public static void removeMember(Tab tab, Canvas member) {
200         tab.getAsSimpleTab().removeMember(member);
201     }
202
203     /**
204      * Add a member (dockable element) to a tab and returns the index of this member
205      * @param tab the tab which we want to add the Tree to
206      * @param member the Tree to add
207      * @return the position of the Tree in the member list.
208      */
209     public static int addMember(Tab tab, Tree member) {
210         return (tab.getAsSimpleTab().addMember(member));
211     }
212
213     /**
214      * Remove a Tree member from a tab
215      * @param tab the tab which we want to remove the Tree from
216      * @param member the Tree to add
217      */
218     public static void removeMember(Tab tab, Tree member) {
219         tab.getAsSimpleTab().removeMember(member);
220     }
221
222     /**
223      * Get the current status of the Tab in its parent
224      * @param tab the tab which we want to add the MenuBar to
225      * @return true is the tab is the tab currently "on top" in its parent
226      */
227     public static boolean isCurrentTab(Tab tab) {
228         return (tab.getAsSimpleTab().isCurrentTab());
229     }
230
231     /**
232      * Set the parent window id for this tab
233      * @param tab the tab which we want to set the parent window id
234      * @param id the id of the parent window
235      */
236     public static void setParentWindowId(Tab tab, int id) {
237         //tab.getAsSimpleTab().setParentWindowId(id);
238     }
239
240     /**
241      * Get the parent window id for this tab
242      * @param tab the tab which we want to get the parent window id
243      * @return the id of the parent window
244      */
245     public static int getParentWindowId(Tab tab) {
246         return 0;//tab.getAsSimpleTab().getParentWindowId();
247     }
248
249     /**
250      * Set the callback of the tab
251      * @param tab the tab which we want to set the callback of
252      * @param callback the CallBack to set
253      */
254     public static void setCallback(Tab tab, CommonCallBack callback) {
255         tab.getAsSimpleTab().setCallback(callback);
256     }
257
258     /**
259      * Set this tab as the current tab of its parent Window
260      * @param tab the tab
261      */
262     public static void setCurrent(Tab tab) {
263         tab.getAsSimpleTab().setCurrent();
264     }
265
266     /**
267      * Set the background color of a tab.
268      * @param tab tab to modify
269      * @param red red channel of the color
270      * @param green green channel
271      * @param blue blue channel
272      */
273     public static void setBackground(Tab tab, double red, double green, double blue) {
274         tab.getAsSimpleTab().setBackground(red, green, blue);
275     }
276
277     /**
278      * Specify whether the canvas should fit the parent tab size
279      * (and consequently the scrollpane size) or not
280      * @param tab tab to modify
281      * @param onOrOff true to enable autoresize mode
282      */
283     public static void setAutoResizeMode(Tab tab, boolean onOrOff) {
284         tab.getAsSimpleTab().setAutoResizeMode(onOrOff);
285     }
286
287     /**
288      * @param tab tab to modify
289      * @return whether the resize mode is on or off
290      */
291     public static boolean getAutoResizeMode(Tab tab) {
292         return tab.getAsSimpleTab().getAutoResizeMode();
293     }
294
295     /**
296      * Get the part of the axes which is currently viewed
297      * @param tab tab to modify
298      * @return [x,y,w,h] array
299      */
300     public static int[] getViewingRegion(Tab tab) {
301         return tab.getAsSimpleTab().getViewingRegion();
302     }
303
304     /**
305      * Specify a new viewport for the axes
306      * Only works if autoresize mode is off
307      * @param tab tab to modify
308      * @param posX X coordinate of upper left point of the viewport within the canvas
309      * @param posY Y coordinate of upper left point of the viewport within the canvas
310      * @param width width of the viewport
311      * @param height height of the viewport
312      */
313     public static void setViewingRegion(Tab tab, int posX, int posY, int width, int height) {
314         tab.getAsSimpleTab().setViewingRegion(posX, posY, width, height);
315     }
316
317
318     /**
319      * @param tab tab to modify
320      * @return size of the axes in pixels
321      */
322     public static Size getAxesSize(Tab tab) {
323         return tab.getAsSimpleTab().getAxesSize();
324     }
325
326
327     /**
328      * @param tab tab to modify
329      * @param newSize set a new axes size
330      */
331     public static void setAxesSize(Tab tab, Size newSize) {
332         tab.getAsSimpleTab().setAxesSize(newSize);
333     }
334
335     /**
336      * Set the event handler of the Axes
337      * @param tab tab to modify
338      * @param command the name of the Scilab function to call
339      */
340     public static void setEventHandler(Tab tab, String command) {
341         tab.getAsSimpleTab().setEventHandler(command);
342     }
343
344     /**
345      * Set the status of the event handler of the Axes
346      * @param tab tab to modify
347      * @param status is true to set the event handler active
348      */
349     public static void setEventHandlerEnabled(Tab tab, boolean status) {
350         tab.getAsSimpleTab().setEventHandlerEnabled(status);
351     }
352
353 }