/*
	Echo Tester.  Tests the simple echo server.  
	J Bergin 1997
*/

import java.awt.*;
import java.net.*;
import java.io.*;
import java.applet.Applet;

public class EchoTester extends Applet
{
	public void init() {
		setLayout(new BorderLayout());
      	inp = new TextField();
      	echo = new TextArea();
		doIt = new Button("Echo It");
		add("North", inp);
		add("South", doIt);
		add("Center", echo);
		resize(500, 400);
		show();
	}
	
   public boolean handleEvent(Event evt)
   {  if (evt.id == Event.WINDOW_DESTROY) System.exit(0);
      return super.handleEvent(evt);
   }
   
   public boolean action(Event event, Object arg)
   {	if (arg.equals("Echo It"))
   		{	String query = replaceAll(inp.getText(), " ", "_");
   			System.out.println(query);
 			try
          	{	URL s = new URL("http://sol.pace.edu/cgi/echosvr.pl?" + query);
				DataInputStream in = new DataInputStream(s.openStream());
				boolean more = true;
		         while (more)
 		        {	String str = in.readLine();
            		if (str != null)
            		{	echo.appendText(str + "\n");
            			System.out.println(str);
           	 		}
            		else 
            		{	// echo.appendText("Nothing\n");
            			more = false;
            		}
         		}
			}
			catch(IOException e)
			{  echo.appendText("Error " + e);
			}
			return true;
   		}
   		else
   		{	return super.action(event, arg);
   		}
   }
   
   private static String replaceAll(String s, String t, String u)
   {  String r = "";
      int pos = 0;
      int nextpos;
      while ((nextpos = s.indexOf(t, pos)) >= 0) 
      {  r = r + s.substring(pos, nextpos) + u;
         pos = nextpos + t.length();
      }
      r = r + s.substring(pos);
      return r;
   }     
       
   private TextArea echo;
   private TextField inp;
   private Button doIt;
}
