package com.jwmsolutions.jwmscript;
import java.net.URL;
import netscape.javascript.JSObject;
public class Applet extends java.applet.Applet {
private static final long serialVersionUID = -3544417053244651886L;
private static final String JS_RESOURCE = "com/jwmsolutions/jwmscript/JWMScript.js";
private Util util;
private URLSetPolicy policy;
public void init() {
JSHandle handle = new JSHandle(JSObject.getWindow(this), getAppletContext());
util = new Util(handle);
try {
super.init();
initPermissions();
ClassLoader cl = getClass().getClassLoader();
handle = (JSHandle) handle.eval(util.getResourceString(JS_RESOURCE, cl));
util.setJSHandle(handle);
handle.call("setUtil", util);
newScripting(getParameter("object_id"));
} catch (Throwable t) {
handle.alert(util.getBacktrace(t));
}
}
public Scripting newScripting(String id) {
JSHandle instance = (JSHandle) util.getJSHandle().call("getInstance", id);
ClassLoader cl = getClass().getClassLoader();
Scripting scripting = new Scripting(instance, new URLClassLoader(cl), this);
instance.call("initialize", scripting);
return scripting;
}
public URLSetPolicy getPolicy() {
return policy;
}
private void initPermissions() {
URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
policy = new URLSetPolicy();
java.security.Policy.setPolicy(policy);
policy.addPermission(new java.security.AllPermission());
policy.addURL(url, getCodeBase(), getDocumentBase());
}
}