import java.awt.*;
import javax.swing.*;
import simulate.Simulation2D;
import simulate.ControllerButton;
import simulate.DisplayConfiguration;
import simulate.IntegratorVelocityVerlet;
import simulate.SpeciesDisks;
import simulate.P2LennardJones;
import simulate.Phase;
import simulate.*;

/**
 * A basic extension of the javax.swing.JApplet class
 */
public class BoundaryShear extends JApplet
{
	public void init()
	{
		// Take out this line if you don't use symantec.itools.net.RelativeURL or symantec.itools.awt.util.StatusScroller
		symantec.itools.lang.Context.setApplet(this);
		
		// This line prevents the "Swing: checked access to system event queue" message seen in some browsers.
		getRootPane().putClientProperty("defeatSystemEventQueueCheck", Boolean.TRUE);
		
		// This code is automatically generated by Visual Cafe when you add
		// components to the visual environment. It instantiates and initializes
		// the components. To modify the code, only use code syntax that matches
		// what Visual Cafe can generate, or Visual Cafe may be unable to back
		// parse your Java file into its visual environment.
		//{{INIT_CONTROLS
		getContentPane().setLayout(null);
		setSize(596,433);
		simulation2D1.setLayout(null);
		getContentPane().add(simulation2D1);
		simulation2D1.setBounds(12,12,420,324);
		controllerButton1.setLayout(null);
		simulation2D1.add(controllerButton1);
		controllerButton1.setBounds(0,24,100,40);
		integratorVelocityVerlet1.setDoSleep(false);
		integratorVelocityVerlet1.setSleepPeriod(5);
		integratorVelocityVerlet1.setIntegrationInterval(4);
		integratorVelocityVerlet1.setLayout(null);
		controllerButton1.add(integratorVelocityVerlet1);
		integratorVelocityVerlet1.setBounds(60,0,20,40);
		displayConfiguration1.setLayout(null);
		simulation2D1.add(displayConfiguration1);
		displayConfiguration1.setBounds(108,12,300,300);
		speciesDisks1.setNMolecules(25);
		speciesDisks1.setLayout(null);
		simulation2D1.add(speciesDisks1);
		speciesDisks1.setBounds(12,108,20,40);
		P2LennardJones1.setEpsilon(300.0);
		P2LennardJones1.setSigma(3.0);
		simulation2D1.add(P2LennardJones1);
		P2LennardJones1.setBounds(60,108,20,40);
		phase1.setLayout(null);
		simulation2D1.add(phase1);
		phase1.setBounds(24,192,20,40);
		//}}
		integratorVelocityVerlet1.setTimeStep(0.01);
		phase1.setBoundary(Space2D.Boundary.SLIDING_BRICK);
		Space2D.BoundarySlidingBrick boundary = (Space2D.BoundarySlidingBrick)phase1.boundary();
		boundary.setShearRate(-0.01);
		boundary.setTimer(integratorVelocityVerlet1.chronoMeter());
	}

	//{{DECLARE_CONTROLS
	simulate.Simulation2D simulation2D1 = new simulate.Simulation2D();
	simulate.ControllerButton controllerButton1 = new simulate.ControllerButton();
	simulate.IntegratorVelocityVerlet integratorVelocityVerlet1 = new simulate.IntegratorVelocityVerlet();
	simulate.DisplayConfiguration displayConfiguration1 = new simulate.DisplayConfiguration();
	simulate.SpeciesDisks speciesDisks1 = new simulate.SpeciesDisks();
	simulate.P2LennardJones P2LennardJones1 = new simulate.P2LennardJones();
	simulate.Phase phase1 = new simulate.Phase();
	//}}
}
