import java.io.*;
import java.awt.*;
import java.awt.event.*;

/**
*/

public class JPETextArea extends TextArea {

	String askline="";
	String usermsg="";
	String askCommand;
	boolean oneshot=false;
	boolean dirty=false;
	AskInterface askCaller;
	JPE jpe;

	public JPETextArea(JPE jpe) {
		this.jpe=jpe;
	}

	protected void processKeyEvent(KeyEvent e) {
		if (askCaller==null) {
			super.processKeyEvent(e);
		} else {
			if (e.getID()==KeyEvent.KEY_TYPED) {
				char tmpkey=e.getKeyChar();
				if (tmpkey!=KeyEvent.VK_BACK_SPACE) {
					askline+=tmpkey;
				} else {
					if (!askline.equals("")) askline=askline.substring(0,askline.length()-1);
				}
				if (oneshot) {
					e.consume();
					askCaller.askCallback(askCommand,askline);
					askCaller=null;						
					askline="";
					askCommand="";
				} else if (jpe!=null) jpe.say(usermsg+askline+"_");
			}
			if (e.getKeyCode()!=10) {
				e.consume();
			} else {
				e.consume();
				askCaller.askCallback(askCommand,askline);
				askCaller=null;
				askline="";
				askCommand="";
			}
		}
	}

	public boolean getAskMode() {
		if (askCaller!=null) return(true);
		return(false);
	}

	public void setAskMode(AskInterface askCaller,String command,String usermsg,boolean oneshot) {
		this.askCaller=askCaller;
		this.askCommand=command;
		this.usermsg=usermsg;
		this.oneshot=oneshot;
		if (jpe!=null) jpe.say(usermsg+"_");
	}

}
