#!/bin/sh
# Upgrade alpha3 applets to the beta APIs. This will only
# do a 80% of the work for most applets.
#
# Usage: upgrade < SomeAlpha3Applet.java > SomeBetaApplet.java
#

/bin/sed -e "
	s/^import oak\./import java./
	s/^import awt\./import java.awt./
	s/^import net\.www\.html\./import java.net./
	/^import browser\./d
	s/browser\.Applet/java.applet.Applet/g
	/^class.*\<extends Applet\>/s/class/public class/
	s/\<extends Applet\>/extends java.applet.Applet/
	s/\([^.]\)\<Applet\>/\1java.applet.Applet/g
	s/\<void mouseDown(/boolean mouseDown(java.awt.Event evt, /
	s/\<void mouseUp(/boolean mouseUp(java.awt.Event evt, /
	s/\<void mouseMove(/boolean mouseMove(java.awt.Event evt, /
	s/\<void mouseDrag(/boolean mouseDrag(java.awt.Event evt, /
	s/\<void mouseExit(/boolean mouseExit(java.awt.Event evt/
	s/\<void mouseEnter(/boolean mouseEnter(java.awt.Event evt/
	s/\<void keyDown(/boolean keyDown(java.awt.Event evt, /
	s/\<bgColor\>/getBackground()/g
	s/\.setForeground(/.setColor(/g
	s/\<play(/play(getCodeBase(), /g
	s/\<getImage(/getImage(getCodeBase(), /g
	s/\<getAttribute(/getParameter(/g
	s/\<documentURL\>/getDocumentBase()/g
	s/\<appletURL\>/getCodeBase()/g
	s/\<getFont(/new java.awt.Font(/g
	s/\<getColor(/new java.awt.Color(/g
	s/\<awt.Color\>/java.awt.Color/g
	s/^[ \t]*\(Thread\.sleep(.*\)/try {\1} catch (InterruptedException e){}/
	s/^[ \t]*\(Thread\.currentThread().sleep(.*\)/try {\1} catch (InterruptedException e){}/
	s/\<paint3DRect(\(.*\),[ \t]*false,\([ \t]*[^)]*\))/draw3DRect(\1,\2)/g
	s/\<paint3DRect(\(.*\),[ \t]*true,\([ \t]*[^)]*\))/fill3DRect(\1,\2)/g
	s/\<drawImage(\(.*\))/drawImage(\1, this)/g
	s/\.appendChar(/.append(/g
        s/\([0-9]*\.[0-9][0-9]*\)/\1f/g
        s/\([0-9.][0-9.]*[eE][0-9][0-9]*\)/\1f/g
	s/\([^.]\)\<width\>/\1size().width/g
        s/\([^.]\)\<height\>/\1size().height/g
	s/\<getFocus()/requestFocus()/g
	s/\<nowMillis\>/currentTimeMillis/g
"
