/* * Copyright 2016 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.console; import org.eclipse.ui.console.MessageConsole; import org.eclipse.ui.console.MessageConsoleStream; import org.robotframework.ide.eclipse.main.plugin.RedImages; import org.robotframework.red.graphics.ColorsManager; /** * @author Michal Anglart * */ public class RedSessionConsole extends MessageConsole { private final Process process; private MessageConsoleStream outStream; private MessageConsoleStream errStream; RedSessionConsole(final String name, final Process process) { super(name, RedImages.getRobotImage()); this.process = process; } void initializeStreams() { outStream = newMessageStream(); errStream = newMessageStream(); errStream.setColor(ColorsManager.getColor(255, 0, 0)); errStream.setActivateOnWrite(true); } Process getProcess() { return process; } MessageConsoleStream getStdOutStream() { return outStream; } MessageConsoleStream getStdErrStream() { return errStream; } void processTerminated() { setName("<terminated> " + getName()); } boolean isTerminated() { return !process.isAlive(); } boolean isActivatingOnStdOutChange() { return outStream.isActivateOnWrite(); } void setActivateOnStdOutChange(final boolean activate) { outStream.setActivateOnWrite(activate); } boolean isActivatingOnStdErrChange() { return errStream.isActivateOnWrite(); } void setActivateOnStdErrChange(final boolean activate) { errStream.setActivateOnWrite(activate); } }