/* @(#)Scullane_Panel.java   22 September 2005 */
 
/* Useful imports */
 
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 Scullane_Panel extends TablePanel {
    
    private static int width =
        TextFieldView.getSampleWidth(5, '2');
    
    private TextFieldView view_first =
        new TextFieldView("1", width);
    
    private TextFieldView view_second =
        new TextFieldView("2", width);
    
    private TextFieldView view_third =
        new TextFieldView("3", width);
    
    private TextFieldView view_fourth =
        new TextFieldView("4", width);
    
    private TextFieldView view_answer =
        new TextFieldView("Take a guess", width);
    
    private SimpleAction sumAction =
        new SimpleAction("Multiply the first three: divide by the last") {
            public void perform() { sum(); }
        
    };
    
    private Object[][] dataStuff =
        new Object[][] {
            { "Number #1", view_first },
            { "Number #2", view_second },
            { "Number #3", view_third },
            { "Number #4", view_fourth },
            { "Answer", view_answer }
    };
    
    private TablePanel data =
        new TablePanel(
            dataStuff, 25, 25, WEST);
    
    private Object[] main =
        new Object[] { data, sumAction };
    
    private TablePanel mainPanel =
        new TablePanel(
            main, VERTICAL, 25, 25, CENTER);
    
    
    public Scullane_Panel() {
        add(new Halo(mainPanel, 50, 50));
        addListeners();
        
        frame("Sum Panel With Halo");
    }
    
    
    private void sum() {
        double x1 = view_first.demandDouble();
        double x2 = view_second.demandDouble();
        double x3 = view_third.demandDouble();
        double x4 = view_fourth.demandDouble();
        
        double x = x1 * x2 * x3 / x4;
        
        view_answer.setViewState(x + "");
    }
    
    private void addListeners() {
        view_first.addActionListener(sumAction);
        view_second.addActionListener(sumAction);
        view_third.addActionListener(sumAction);
        view_fourth.addActionListener(sumAction);
    }
    
    public static void main(String[] args) {
     new Scullane_Panel();
    }
}

