package org.eclipse.eclipsemonkey.lang.ruby;
/**
* Copyright (c) 2007 Aptana, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html. If redistributing this code,
* this entire header must remain intact.
*/
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.MessageConsole;
import org.eclipse.ui.console.MessageConsoleStream;
/**
* @author Chris Williams
*/
public class RubyScriptConsole extends MessageConsole {
private static final String CONSOLE_NAME = "Ruby Scripting Console"; //$NON-NLS-1$
private static final String CONSOLE_STARTED_MESSAGE = "Eclipse Monkey Ruby Console Started"; //$NON-NLS-1$
private static RubyScriptConsole _console;
private static MessageConsoleStream _consoleStream;
public RubyScriptConsole(String name, ImageDescriptor imageDescriptor) {
super(name, imageDescriptor);
}
/**
* Returns a reference to the current console, initializing it if it's not created
*
* @return A console stream
*/
public static MessageConsoleStream getConsoleStream()
{
if (_console == null)
{
_console = new RubyScriptConsole(CONSOLE_NAME, null);
_consoleStream = _console.newMessageStream();
PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable()
{
public void run()
{
_consoleStream.setColor(PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_BLUE));
}
});
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { _console });
_consoleStream.println(CONSOLE_STARTED_MESSAGE);
}
return _consoleStream;
}
}