FileDocCategorySizeDatePackage
Redir.javaAPI DocExample1887Mon Jul 03 20:15:22 BST 2000None

Redir

public class Redir extends Applet implements Runnable
A simple redirection applet.
author
Ian Darwin

Fields Summary
protected String
urlString
protected URL
theNewURL
protected static final int
NSECONDS
protected Thread
t
Constructors Summary
Methods Summary
public voidinit()


	   
		try {
			// Get the address from a PARAM...
			urlString = getParameter("URL");
			if (urlString == null)  {
				urlString = "MISSING URL";
				throw new IllegalArgumentException(
				"Redir requires a URL parameter in the HTML");
			}

			// Make up the URL object
			theNewURL = new URL(urlString);

			// debug...
			// showStatus("URL = " + theNewURL);

		} catch (Exception err) {
			System.err.println("Error!\n" + err);
			showStatus("Error, look in Java Console for details!");
		}
	
public voidpaint(java.awt.Graphics g)
Print a little message to the user.

		if (urlString != null)
			g.drawString(urlString, 20, 50);
		else
			g.drawString("Initializing...", 20, 50);
	
public voidrun()
run, called by the Thread, does the work of sleeping for a fixed number of seconds then, if the user hasn't moved off the page, actually passing control to the new page.

		for (int i=NSECONDS; i>=0; i--) {
			try {
				Thread.sleep(1000);
				if (t == null)
					return;
			} catch (InterruptedException e) {
				// so what?
			}
			if (t == null)
				return;
			showStatus(Integer.toString(i));

			if (t == null)
				return;

			showStatus("Ignition!");
			// "And then a miracle occurs..."
			getAppletContext().showDocument(theNewURL);
		}
	
public voidstart()

		if (theNewURL == null)
			return;

		t = new Thread(this);
		t.start();
	
public voidstop()
If users moves off the page, set Thread t to null so we don't showDocument from within the middle of the new page!

		t = null;