/*******************************************************************************
* Copyright (c) 2004, 2006
* Thomas Hallgren, Kenneth Olwing, Mitch Sonies
* Pontus Rydin, Nils Unden, Peer Torngren
* The code, documentation and other materials contained herein have been
* licensed under the Eclipse Public License - v 1.0 by the individual
* copyright holders listed above, as Initial Contributors under such license.
* The text of such license is available at www.eclipse.org.
*******************************************************************************/
package org.eclipse.buckminster.ui.internal;
import java.io.OutputStream;
import org.eclipse.buckminster.runtime.ILogReceiver;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleManager;
import org.eclipse.ui.console.IOConsoleOutputStream;
/**
* @author ken1
*/
public class EclipseConsoleLogReceiver implements ILogReceiver {
@Override
public OutputStream start(String title, String type, boolean activateOnWrite, boolean errorStream) {
IConsoleManager mgr = ConsolePlugin.getDefault().getConsoleManager();
BuckminsterIOConsole ourConsole = null;
for (IConsole console : mgr.getConsoles()) {
if (console instanceof BuckminsterIOConsole && title.equals(console.getName()) && type.equals(console.getType())) {
ourConsole = (BuckminsterIOConsole) console;
break;
}
}
if (ourConsole == null) {
ourConsole = new BuckminsterIOConsole(title, type);
mgr.addConsoles(new IConsole[] { ourConsole });
// Don't activate the console. It will be activated on
// first write.
}
final IOConsoleOutputStream stream = ourConsole.newOutputStream(errorStream);
return stream;
}
}