package de.lessvoid.nifty.controls;
import de.lessvoid.nifty.tools.Color;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
* The Console interface is the Nifty control API view of a Nifty Console control.
*
* @author void
*/
public interface Console extends NiftyControl {
/**
* output a line of text (or multiple lines separated by \n) to the console.
*
* @param line the line of text to output to the console
*/
void output(@Nonnull String line);
/**
* output a line of text (or multiple lines separated by \n) to the console.
*
* @param line the line of text to output to the console
*/
void output(@Nonnull String line, @Nullable Color color);
/**
* output a line of text (or multiple lines separated by \n) with the error color
*
* @param line the line of text to output to the console
*/
void outputError(@Nonnull String line);
/**
* Get the complete content of the console as an array of Strings.
*
* @return console content
*/
@Nonnull
String[] getConsoleContent();
/**
* Clear the console.
*/
void clear();
/**
* This gives you access to the Textfield that the Console uses for text input.
*
* @return the Nifty TextField control
*/
@Nullable
TextField getTextField();
/**
* Change the output colors. A color can be null in which case the default color of the console is being used.
*
* @param standardColor the output color for the normal output
* @param errorColor the output color for the error output
*/
void changeColors(@Nullable final Color standardColor, @Nonnull final Color errorColor);
}