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;
	double k;

	public CblCalc() {

		f=new JDialog(new JFrame(),"Cable Calculator",true);
		f.setSize(300,300);
		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, AWGChooser_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(20);
		txtnow.setEditable(true);
		cblPanel.add(txtnow);

		cblPanel.add(new Label(" Select Wire Gage [AWG] "));
		final JComboBox AWGChooser = new JComboBox(AWG_val);
		cblPanel.add(AWGChooser);

		AWGChooser.addItemListener(
			new ItemListener() {
				public void itemStateChanged( ItemEvent e ) {
					if( e.getStateChange() == ItemEvent.SELECTED ){
						txtnow.setText("" + ((JComboBox)e.getSource()).getSelectedItem());
					}
				}
			}
		);

		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 "));
		txtfincsa = new JTextField(20);
		cblPanel.add(txtfincsa);

		cblPanel.add(new JLabel(" Final Cable/Bundle Cross Sectional Area "));
		txtfindia = new JTextField(20);
		cblPanel.add(txtfindia);

		mainPanel.add(cblPanel);

		f.getContentPane().add(mainPanel);
		f.toFront ();
		f.setVisible(true);

		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);

		int AWGChooser_int = Integer.parseInt(txtnow_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();

	}

}
