/******************************************************************************* * This file is protected by Copyright. * Please refer to the COPYRIGHT file distributed with this source distribution. * * This file is part of REDHAWK IDE. * * 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 *******************************************************************************/ package gov.redhawk.ide.codegen.ui.internal; import gov.redhawk.ide.codegen.ICodeGeneratorDescriptor; import gov.redhawk.ide.codegen.ui.RedhawkCodegenUiActivator; import java.io.IOException; import java.io.PrintStream; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.preference.JFacePreferences; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.ui.console.IOConsole; import org.eclipse.ui.console.IOConsoleOutputStream; import org.eclipse.ui.plugin.AbstractUIPlugin; /** * */ public class GeneratorConsole extends IOConsole { private final PrintStream outStream; private final PrintStream errStream; /** * @param name * @param consoleType * @param imageDescriptor * @param encoding * @param autoLifecycle */ public GeneratorConsole(final ICodeGeneratorDescriptor desc) { super(desc.getName(), desc.getId(), GeneratorConsole.getConsoleImageDesc(desc)); final IOConsoleOutputStream outIOStream = this.newOutputStream(); outIOStream.setActivateOnWrite(false); this.outStream = new PrintStream(outIOStream); final IOConsoleOutputStream errIOStream = this.newOutputStream(); errIOStream.setActivateOnWrite(true); errIOStream.setColor(JFaceResources.getColorRegistry().get(JFacePreferences.ERROR_COLOR)); this.errStream = new PrintStream(errIOStream); try { this.getInputStream().close(); } catch (final IOException e) { RedhawkCodegenUiActivator.getDefault().getLog().log( new Status(IStatus.ERROR, RedhawkCodegenUiActivator.PLUGIN_ID, "Error in generator console.", e)); } } /** * @return the outStream */ public PrintStream getOutStream() { return this.outStream; } /** * @return the errStream */ public PrintStream getErrStream() { return this.errStream; } /** * @param desc * @return */ private static ImageDescriptor getConsoleImageDesc(final ICodeGeneratorDescriptor desc) { final String path = desc.getIconPath(); final String bundleId = desc.getContributingBundleId(); if (path == null) { return null; } return AbstractUIPlugin.imageDescriptorFromPlugin(bundleId, path); } }