import java.applet.Applet;
import java.awt.*;
import java.util.HashMap;

import org.web3d.x3d.sai.*;
import org.xj3d.sai.*;
import org.web3d.vrml.scripting.external.sai.*;

/**
 * An example class showing how to deploy the Xj3D Browser as an applet.
 * 
 * @author chris
 *
 */
public class Xj3DAppletTutorial extends Applet{

	ExternalBrowser browser;

	public Xj3DAppletTutorial() {
	}

	// Methods from Applet
	
	public void init() {
		setLayout(new BorderLayout());
		browser = getBrowser();
		loadScene();
	}

	// Local methods
	
	// Generate the browser
	private ExternalBrowser getBrowser() {
		HashMap<String, Boolean> requestedParameters = new HashMap<String, Boolean>();
		requestedParameters.put("Xj3D_ConsoleShown", Boolean.TRUE);
		requestedParameters.put("Xj3D_LocationShown", Boolean.FALSE);
		
		X3DComponent comp = BrowserFactory.createX3DComponent(requestedParameters);
		Xj3DBrowser browser = (Xj3DBrowser) comp.getBrowser();
		
		setBackground(Color.blue);
		add((Component) comp, BorderLayout.CENTER);
		setVisible(Boolean.TRUE);
		
		return browser;
	}

	// Create the scene implementation and add it to the world
	private void loadScene() {
		X3DScene mainScene = browser.createX3DFromURL(new String[] {getParameter("modelURL")});
		browser.replaceWorld(mainScene);
	}
}
