/* Sawyer_Panel, Brian Sawyer 10/6/05*/ import edu.neu.ccs.*; import edu.neu.ccs.gui.*; import edu.neu.ccs.codec.*; import edu.neu.ccs.console.*; import edu.neu.ccs.filter.*; import edu.neu.ccs.jpf.*; import edu.neu.ccs.parser.*; import edu.neu.ccs.pedagogy.*; import edu.neu.ccs.quick.*; import edu.neu.ccs.util.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.font.*; import java.awt.image.*; import javax.swing.*; import javax.swing.border.*; import java.io.*; import java.util.*; import java.math.*; import java.beans.*; import java.lang.reflect.*; import java.net.URL; import java.util.regex.*; import java.text.ParseException; public class Sawyer_Panel extends TablePanel { private static int width = TextFieldView.getSampleWidth(20, '0'); private TextFieldView head = new TextFieldView("0", width); private TextFieldView body = new TextFieldView("0", width); private TextFieldView arms = new TextFieldView("0", width); private TextFieldView legs = new TextFieldView("0", width); private SimpleAction drawAction = new SimpleAction("Draw") { public void perform() { draw(); } }; private Object[][] dataStuff = new Object[][] { { "Head Radius", head }, { "Body Length", body }, { "Arm Length", arms }, { "Leg Length", legs } }; private TablePanel dataPanel = new TablePanel( dataStuff, 10, 10, WEST); private BufferedPanel window = new BufferedPanel(400, 400); private Object[] mainStuff = new Object[] { window, dataPanel, drawAction }; private TablePanel mainPanel = new TablePanel( mainStuff, VERTICAL, 10, 10, CENTER); public Sawyer_Panel() { add(mainPanel); addListeners(); frame("Person Panel"); } private void draw() { double h = head.demandDouble(); double b = body.demandDouble(); double a = arms.demandDouble(); double l = legs.demandDouble(); double b1 = (75 + h); double b2 = (b1 + b); double a1 = ((b2 + b1) / 2); double l1 = (l /2); window.clearSequence(); XCircle headDraw = new XCircle(200,75,h); window.addPaintable(headDraw); XLine2D bodyDraw = new XLine2D(200,b1,200,b2); window.addPaintable(bodyDraw); XLine2D armDraw1 = new XLine2D(200,a1,(200 - a),125); window.addPaintable(armDraw1); XLine2D armDraw2 = new XLine2D(200,a1,(200 + a ),125); window.addPaintable(armDraw2); XLine2D legDraw1 = new XLine2D(200,b2,(200+l1),(b2 + l)); window.addPaintable(legDraw1); XLine2D legDraw2 = new XLine2D(200,b2,(200-l1),(b2 + l)); window.addPaintable(legDraw2); window.repaint(); } private void addListeners() { head.addActionListener(drawAction); body.addActionListener(drawAction); arms.addActionListener(drawAction); legs.addActionListener(drawAction); } }