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