import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import javax.swing.border.*;

import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;

import com.ptc.cipjava.*;
import com.ptc.pfc.pfcSession.*;
import com.ptc.pfc.pfcGlobal.*;
import com.ptc.pfc.pfcCommand.*;
import com.ptc.pfc.pfcModel.*;
import com.ptc.pfc.pfcModelItem.*;
import com.ptc.pfc.pfcSolid.*;

public class CblCalc extends JDialog {

	private JDialog f;
	private JPanel mainPanel;
	private JTextField txtnow, txtfincsa, txtfindia;
	private JButton docalc_but;
	private JComboBox AWGChooser;
	private String AWGChooser_str;
	private double k;

	public CblCalc() {

		f=new JDialog(new JFrame(),"Cable Calculator",true);
		f.setSize(450,250);
		mainPanel= new JPanel();

		String[] AWG_val =	{"0","1","2","3","4","5","6","7","8","9",
							"10","11","12","13","14","15","16","17","18","19",
							"20","21","22","23","24","25","26","27","28","29",
							"30","31","32","33","34","35","36","37","38","39","40"};

		String txtnow_str, txtfindia_str, txtfincsa_str;
		double findia_sum, fincsa_sum, diadbl;
		int txtnow_int, AWGChooser_int;

		JPanel cblPanel = new JPanel();
		cblPanel.setLayout(new GridLayout(5, 2));

		k=Math.pow(0.46/0.005,1.0/39.0);

		cblPanel.add(new Label(" Enter Number Of Wires "));
		txtnow = new JTextField(15);
		txtnow.setEditable(true);
		cblPanel.add(txtnow);

		cblPanel.add(new Label(" Select Wire Gage [AWG] "));
		AWGChooser = new JComboBox(AWG_val);
		cblPanel.add(AWGChooser);

		cblPanel.add(new JLabel(" Calculate Final Totals "));
		docalc_but = new JButton("Do Final Cable Calculations");
		cblPanel.add(docalc_but);

		docalc_but.addActionListener
		(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent e)
				{
					big_calc();
				}
			}
		);

		cblPanel.add(new JLabel(" Final Cable Diameter "));
		txtfindia = new JTextField(15);
		cblPanel.add(txtfindia);

		cblPanel.add(new JLabel(" Final Cable Cross Sectional Area "));
		txtfincsa = new JTextField(15);
		cblPanel.add(txtfincsa);

		mainPanel.add(cblPanel);

		f.getContentPane().add(mainPanel);
		f.toFront ();
		f.pack();
		f.show();

		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				KickOff.stop();
			}
		});
	}

	public void big_calc() {

		String txtnow_str = get_txtnow_str();
    	int txtnow_int = Integer.parseInt(txtnow_str);

		String AWGChooser_str = (String)AWGChooser.getSelectedItem();
		int AWGChooser_int = Integer.parseInt(AWGChooser_str);

		double diadbl=dia_calc(AWGChooser_int);
		double findia_sum=findia_calc(diadbl, txtnow_int);
		double fincsa_sum=fincsa_calc(findia_sum);

		String txtfindia_str = Double.toString(findia_sum);
		txtfindia.setText(txtfindia_str);

		String txtfincsa_str = Double.toString(fincsa_sum);
		txtfincsa.setText(txtfincsa_str);
	}

	public double findia_calc(double diadbl, int txtnow_int) {
		double findia_sum = Math.sqrt( txtnow_int * ( diadbl * diadbl ) );
		return findia_sum;
	}

	public double fincsa_calc(double findia_sum) {
		double fincsa_sum = Math.PI * ( findia_sum / 2) * ( findia_sum / 2 );
		return fincsa_sum;
	}

	public double dia_calc(int AWGChooser_int) {
		double diadbl = 0.46/Math.pow(k,AWGChooser_int+3);
		return diadbl;
	}

	public String get_txtnow_str() {
		String txtnow_str = txtnow.getText();	// get text from textfield
		return txtnow_str;
	}

	public static void main(String[] args) {

		CblCalc CC;
		CC= new CblCalc();
	}
}
