New Java Help Browser for Scilab.
[scilab.git] / scilab / modules / gui / src / java / org / scilab / modules / gui / console / ScilabConsoleBridge.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 package org.scilab.modules.gui.console;
13
14 import org.scilab.modules.gui.bridge.console.SwingScilabConsole;
15 import org.scilab.modules.gui.frame.Frame;
16 import org.scilab.modules.gui.tab.Tab;
17 import org.scilab.modules.gui.utils.Position;
18 import org.scilab.modules.gui.utils.Size;
19
20 /**
21  * Bridge for Scilab Console in GUIs
22  * @author Vincent COUVERT
23  */
24 public class ScilabConsoleBridge {
25
26         /**
27          * Constructor
28          */
29         protected ScilabConsoleBridge() {
30                 throw new UnsupportedOperationException(); /* Prevents calls from subclass */
31         };
32
33         /**
34          * Creates a Scilab Console
35          * @return the created console
36          */
37         public static SimpleConsole createConsole() {
38                 return new SwingScilabConsole();
39         }
40
41         /**
42          * Displays data in the console
43          * @param console the console to display the data in
44          * @param dataToDisplay the data to be displayed
45          * @see fr.scilab.console.HelpBrowser#display()
46          */
47         public static void display(Console console, String dataToDisplay) {
48                 console.getAsSimpleConsole().display(dataToDisplay);
49         }
50
51         /**
52          * Reads input data in the console
53          * @param console the console to read the data from
54          * @return the data entered by the user
55          * @see fr.scilab.console.HelpBrowser#readLine()
56          */
57         public static String readLine(Console console) {
58                 return console.getAsSimpleConsole().readLine();
59         }
60
61         /**
62          * Add a member (dockable element) to a tab and returns the index of this member
63          * @param tab the tab where we want to add the member
64          * @param member the member to add
65          * @return index of member in ArrayList
66          */
67         public static int addMember(Tab tab, Frame member) {
68                 return tab.addMember(member);
69         }
70
71         /**
72          * Draw a console
73          * @param console the console to draw
74          */
75         public static void draw(Console console) {
76                 console.getAsSimpleConsole().draw();
77         }
78
79         /**
80          * Gets the dimensions (width and height) of a Scilab console
81          * @param console the console which we want to get the dimensions of
82          * @return the size of the console
83          */
84         public static Size getDims(Console console) {
85                 return console.getAsSimpleConsole().getDims();
86         }
87
88         /**
89          * Gets the position (X-coordinate and Y-coordinates) of a Scilab console
90          * @param console the console which we want to get the position of
91          * @return the position of the console
92          */
93         public static Position getPosition(Console console) {
94                 return console.getAsSimpleConsole().getPosition();
95         }
96
97         /**
98          * Gets the visibility status of a console
99          * @param console the console which we want to get the visibility status of
100          * @return the visibility status of the console (true if the console is visible, false if not)
101          */
102         public static boolean isVisible(Console console) {
103                 return console.getAsSimpleConsole().isVisible();
104         }
105         
106         /**
107          * Sets the dimensions (width and height) of a Scilab console
108          * @param console the console which we want to set the dimensions of
109          * @param newSize the size we want to set to the console
110          */
111         public static void setDims(Console console, Size newSize) {
112                 console.getAsSimpleConsole().setDims(newSize);
113         }
114
115         /**
116          * Sets the position (X-coordinate and Y-coordinate) of a Scilab console
117          * @param console the console which we want to set the position of
118          * @param newPosition the position we want to set to the console
119          */
120         public static void setPosition(Console console, Position newPosition) {
121                 console.getAsSimpleConsole().setPosition(newPosition);
122         }
123
124         /**
125          * Sets the visibility status of a Scilab console
126          * @param console the console which we want to set the visibility status of
127          * @param newVisibleState the visibility status we want to set to the console
128          */
129         public static void setVisible(Console console, boolean newVisibleState) {
130                 console.getAsSimpleConsole().setVisible(newVisibleState);
131         }
132         
133         /**
134          * Clears the console (no more scroll history and prompt on top left corner)
135          * @param console the console to be cleared
136          */
137         public static void clear(Console console) {
138                 console.getAsSimpleConsole().clear();
139         }
140         
141         /**
142    * Clears lines from the end of the output view
143    * @param console the console to be cleared
144    * @param nbLines the number of lines to be deleted
145    */
146   public static void clear(Console console, int nbLines) {
147                 console.getAsSimpleConsole().clear(nbLines);
148         }
149         
150         /**
151    * Puts the prompt in the top left corner of the console
152    * @param console the console used
153    */
154   public static void toHome(Console console) {
155         console.getAsSimpleConsole().toHome();
156   }
157
158
159         /**
160          * Reads one user input char
161          * @param console the console used to get the char
162          * @return the data entered by the user
163          * @see fr.scilab.console.HelpBrowser#getCharWithoutOutput()
164          */
165         public static int getCharWithoutOutput(Console console) {
166                 return console.getAsSimpleConsole().getCharWithoutOutput();
167         }
168
169         /**
170            * Sets the prompt displayed in the console
171            * @param console the console where the prompt is set
172            * @param prompt the prompt to be displayed in the console
173            */
174         public static void setPrompt(Console console, String prompt) {
175                 console.getAsSimpleConsole().setPrompt(prompt);
176         }
177         
178         /**
179          * Updates Scilab internal variables containing the size of the console
180          * These variables are used to format data before displaying it
181          * @param console object we want to get the size of
182          */
183         public static void scilabLinesUpdate(Console console) {
184                 console.getAsSimpleConsole().scilabLinesUpdate();
185         }
186         
187         /**
188          * Get the current status of the console
189          * If the prompt view is visible, Scilab is waiting for commands
190          * @param console object we want to get the status of
191          * @return true is Scilab is waiting for commands
192          */
193         public static boolean isWaitingForInput(Console console) {
194                 return console.getAsSimpleConsole().isWaitingForInput();
195         }
196
197         /**
198          * Clear the commands history
199          * @param console the console we want to clear the history of 
200          */
201         public static void clearHistory(Console console) {
202                 console.getAsSimpleConsole().clearHistory();
203         }
204
205 }