import java.awt.*;
import java.net.*; 
import java.awt.event.*; 
import java.applet.*;
import java.util.*;
import java.io.*; 

public class AppletFrame extends Frame implements AppletStub, 
                                           AppletContext,
                                           WindowListener {
    AppletFrame(Applet a) {
        setTitle(a.getClass().getName()); 
        add("Center", a); 
        a.setStub(this); 
        a.init(); 
        a.start(); 
        setSize(((Rink)a).wide, ((Rink)a).tall); // note the casting 
	show(); 
	this.addWindowListener(this); 

    }

    // AppletStub methods 

    public boolean isActive() { return true; } 
    public URL getDocumentBase() { return null; }
    public URL getCodeBase() { return null; } 
    public String getParameter(String name) { 
        if (name.equals("columns")) return "10"; 
        else if (name.equals("rows")) return "10"; 
        else if (name.equals("penguin")) return "no"; // could be yes 
        else if (name.equals("pengo_x")) return "1";  // don't matter... 
        else if (name.equals("pengo_y")) return "7"; 
        else return ""; 
    } 

    public AppletContext getAppletContext() { return this; }
    public void appletResize(int width, int height) { }

    // AppletContext methods 

    public AudioClip getAudioClip(URL url) { return null; } 
    public Image getImage(URL url) { return null; } 
    public Applet getApplet(String name) { return null; } 
    public Enumeration getApplets() { return null; } 
    public void showDocument(URL url) { } 
    public void showDocument(URL url, String target) { } 
    public void showStatus(String status) { }

    public void setStream(String key, 
                          InputStream stream) throws IOException { } 

    public InputStream getStream(String key) { return null; } 
    public Iterator getStreamKeys() { return null; } 

    // WindowListener methods 

    public void windowActivated(WindowEvent e) { } 
    public void windowClosed(WindowEvent e) { } 
    public void windowClosing(WindowEvent e) { System.exit(0); } 
    public void windowDeactivated(WindowEvent e) { } 
    public void windowDeiconified(WindowEvent e) { } 
    public void windowIconified(WindowEvent e) { } 
    public void windowOpened(WindowEvent e) { } 

}

