//Jon Pelc  6844
//Pelc_Math_Maker

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;

/*
 * Added by Richard Rasala
 * 
 * Added main to launch program directly.
 */

public class Pelc_Math_Maker extends TablePanel{
	
	private static int width =TextFieldView.getSampleWidth(20, '0');
	
	protected TextFieldView aTFV=new TextFieldView("1", width);
	protected TextFieldView bTFV=new TextFieldView("2", width);
	protected TextFieldView cTFV=new TextFieldView("3", width);
	protected TextFieldView dTFV=new TextFieldView("4", width);
	protected TextFieldView totalTFV=new TextFieldView("", width);
	
	private SimpleAction calcAction =
        new SimpleAction("Calculate") {
            public void perform() { calculate(); }
        };
	
        private Object[][] data =
            new Object[][] {
				{"A:", new Halo(aTFV)}, 
				{"B:", new Halo(bTFV)}, 
				{"C:", new Halo(cTFV)}, 
				{"D:", new Halo(dTFV)}, 
				{"Total:", new Halo(totalTFV)}};
        
        private TablePanel dataPanel =
            new TablePanel(
                data, 10, 10, WEST);
        
        private Object[] mains=
            new Object[] { dataPanel, calcAction };
        
        private TablePanel mainPanel =
            new TablePanel(
                mains, VERTICAL, 10, 10, CENTER);
        
        public Pelc_Math_Maker() {
            add(new Halo(mainPanel, 10, 10));
            addListeners();
            
            frame("Jon Pelc's Math Doer");
        }
        
        private void calculate(){
        	Double d1=aTFV.demandDouble();
        	Double d2=bTFV.demandDouble();
        	Double d3=cTFV.demandDouble();
        	Double d4=dTFV.demandDouble();
        	
        	Double tot=((d1+d2)/d3)*d4;
        	
        	totalTFV.setViewState(""+tot);
        }
        
        private void addListeners() {
            aTFV.addActionListener(calcAction);
            bTFV.addActionListener(calcAction);
            cTFV.addActionListener(calcAction);
            dTFV.addActionListener(calcAction);
        }
        
        
        /*
         * Added by Richard Rasala
         */
        public static void main(String[] args) {
            new Pelc_Math_Maker();
        }
        
}
