package org.nodeclipse.ui.util;
import java.io.IOException;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IOConsoleOutputStream;
import org.eclipse.ui.console.MessageConsole;
import org.nodeclipse.ui.Activator;
import org.nodeclipse.ui.preferences.PreferenceConstants;
/**
* Console util
* for tracing node launch parameters and errors
*
* @author pverest
*/
public class NodeclipseConsole {
private static NodeclipseConsole instance = null;
private static IOConsoleOutputStream stream = null;
public NodeclipseConsole() {
MessageConsole console = new MessageConsole("Nodeclipse Console", null);
console.activate();
ConsolePlugin.getDefault().getConsoleManager()
.addConsoles(new IConsole[] { console });
stream = console.newOutputStream();
}
static {
getInstance();
write(VersionUtil.getLongString());
write("visit http://www.nodeclipse.org/\n\n");
}
private static NodeclipseConsole getInstance() {
if (instance == null)
instance = new NodeclipseConsole();
return instance;
}
public static void write(String s) {
IPreferenceStore preferenceStore = Activator.getDefault().getPreferenceStore();
boolean nodeclipseConsoleEnabled = preferenceStore.getBoolean(PreferenceConstants.NODECLIPSE_CONSOLE_ENABLED);//@since 0.7
if (!nodeclipseConsoleEnabled)
return;
instance = getInstance();
try {
stream.write(s);
} catch (IOException e) {
//TODO how to show?
//e.printStackTrace();
}
}
@Override
public void finalize() {
try {
stream.close();
} catch (IOException e) {
//TODO how to show?
//e.printStackTrace();
}
}
}