package apet.console;
import java.io.OutputStream;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleManager;
import org.eclipse.ui.console.MessageConsole;
import org.eclipse.ui.console.MessageConsoleStream;
public class ConsoleHandler {
public static MessageConsole defaultConsole = null;
public static final String ID_CONSOLE_VIEW = "aPETConsole";
public static MessageConsole findCostabsConsole() {
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager conMan = plugin.getConsoleManager();
IConsole[] existing = conMan.getConsoles();
for (int i = 0; i < existing.length; i++)
if (ID_CONSOLE_VIEW.equals(existing[i].getName()))
return (MessageConsole) existing[i];
//no console found, so create a new one
MessageConsole myConsole = new MessageConsole(ID_CONSOLE_VIEW, null);
conMan.addConsoles(new IConsole[]{myConsole});
return myConsole;
}
/**
* Returns the Costabs Console Output Stream to write to the console.
* @return Costabs Console Output Stream to write to the console.
*/
public static OutputStream getCostaConsoleStream () {
MessageConsole myConsole = findCostabsConsole();
MessageConsoleStream out = myConsole.newMessageStream();
out.setActivateOnWrite(true);
return out;
}
public static void write(String text) {
if (defaultConsole != null) {
MessageConsoleStream out = defaultConsole.newMessageStream();
out.setActivateOnWrite(true);
out.println(text);
}
}
public static void clearConsole() {
if (defaultConsole != null)
defaultConsole.clearConsole();
}
/**
* Gives the default console with an empty title
* @return Default Message Console
*/
public static MessageConsole getDefault() {
if (defaultConsole == null){
defaultConsole = new MessageConsole("Default",null);
addConsole(defaultConsole);
}
return defaultConsole;
}
/**
* Adds consoles to the console View
* @param console
*/
public static void addConsole(IConsole console){
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] {console});
}
}