/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* 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
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.ide.console;
import org.eclipse.che.ide.api.mvp.View;
/**
* View for output console.
*
* @author Artem Zatsarynnyi
*/
public interface OutputConsoleView extends View<OutputConsoleView.ActionDelegate> {
/**
* Shows the command line to the console.
*
* @param commandLine
* command line
*/
void showCommandLine(String commandLine);
/**
* Shows the command preview URL.
*
* @param previewUrl
* preview URL
*/
void showPreviewUrl(String previewUrl);
/**
* Prints text.
*
* @param text
* text to print
* @param carriageReturn
* if {@code true} - next message should replace the current one,
* if {@code false} - next message will be printed in a new line
*/
void print(String text, boolean carriageReturn);
/**
* Prints colored text.
*
* @param text
* text to print
* @param carriageReturn
* if {@code true} - next message should replace the current one,
* if {@code false} - next message will be printed in a new line
* @param color
* color of the text or NULL
*/
void print(String text, boolean carriageReturn, String color);
/**
* Returns the console text.
*
* @return
* console text
*/
String getText();
/**
* Hides command title and command label.
*/
void hideCommand();
/**
* Hides preview title and preview label.
*/
void hidePreview();
/**
* Wraps text in the console.
*
* @param wrap
* set <code>true</code> to wrap the text
*/
void wrapText(boolean wrap);
/**
* Enables auto scroll when output.
*/
void enableAutoScroll(boolean enable);
/**
* Clears the console.
*/
void clearConsole();
/**
* Toggles `Wrap text` button.
*
* @param toggle
* use <code>true</code> to toggle the button
*/
void toggleWrapTextButton(boolean toggle);
/**
* Toggles `Scroll to the end` button.
*
* @param toggle
* use <code>true</code> to toggle the button
*/
void toggleScrollToEndButton(boolean toggle);
/**
* Sets visibility for Re-Run button.
*
* @param visible
* use <code>true</code> to show the button
*/
void setReRunButtonVisible(boolean visible);
/**
* Sets visibility for Stop button.
*
* @param visible
* use <code>true</code> to show the button
*/
void setStopButtonVisible(boolean visible);
/**
* Enables or disables Stop process button.
*
* @param enable
* new enabled state for the button
*/
void enableStopButton(boolean enable);
/** Action handler for the view actions/controls. */
interface ActionDelegate {
/** Handle click on `Run process` button. */
void reRunProcessButtonClicked();
/** Handle click on `Stop process` button. */
void stopProcessButtonClicked();
/** Handle click on `Clear console` button. */
void clearOutputsButtonClicked();
/** Handle click on `Download outputs` button. */
void downloadOutputsButtonClicked();
/** Handle click on `Wrap text` button. */
void wrapTextButtonClicked();
/** Handle click on `Scroll to end` button. */
void scrollToBottomButtonClicked();
/** Handle scrolling the output. */
void onOutputScrolled(boolean bottomReached);
}
}