/* * Copyright 2009 NCHOVY * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.krakenapps.api; import java.util.Properties; import org.krakenapps.ansicode.AnsiEscapeCode; public interface ScriptContext { AccountManager getAccountManager(); void quit(); int getWidth(); int getHeight(); void setWindowSize(int width, int height); ScriptSession getSession(); Script getCurrentScript(); void setCurrentScript(Script currentScript); ScriptInputStream getInputStream(); void setInputStream(ScriptInputStream newInputStream); ScriptOutputStream getOutputStream(); void setOutputStream(ScriptOutputStream newOutputStream); char read() throws InterruptedException; String readLine() throws InterruptedException; String readPassword() throws InterruptedException; void printPrompt(); void println(); void println(String value); void println(Object value); void print(String value); void print(AnsiEscapeCode ansiCode); void print(Object value); void printf(String format, Object... args); Properties getEnvironmentVariables(); void setEnvironmentVariables(Properties newProperties); void transferInput(char ch); void transferInput(FunctionKeyEvent keyEvent); boolean isEchoOn(); void turnEchoOn(); void turnEchoOff(); void addWindowSizeEventListener(WindowSizeEventListener callback); void removeWindowSizeEventListener(WindowSizeEventListener callback); }