//TransLoadPanel

/* A Java class for
 * LineImpedance.java
 * Electromagnetic Transmission Line Applet
 * Applet without Smith Chart - Prepared by Umberto Ravaioli 
 * for 6th edition of Fundamentals of Applied Electromagnetics Book
 * Revision 20019 - All Rights Reserved
 */ 

import java.awt.*;
import java.awt.event.*;

public class TransLoadPanel extends PC implements ItemListener{
    public Checkbox c1, c2;
    public Checkbox c3, c4;
    protected CheckboxGroup cgrp;
    
    private Font newfont0, newfont1, newfont2, newfont3, newfont4;
    
    private Trans_State state;
    //private static final Color bgcolor = new Color(216,216,191);
    private static final Color bgcolor = new Color(236,236,221);
    private static final Color tinta = new Color(236,236,221);
    
    public TransLoadPanel(String titulo, String[] nome, String[] unidade,Trans_State state){
	super(titulo,nome,unidade);
	setLayout(null);

        setFont(TheFonts.sanSerif14);
        newfont0 = new Font("SanSerif",Font.PLAIN,state.font12);
        newfont1 = new Font("SanSerif",Font.BOLD,state.font12);
        newfont2 = new Font("SanSerif",Font.PLAIN,state.font11);
        newfont3 = new Font("Serif",Font.PLAIN,state.font12);
        newfont4 = new Font("SanSerif",Font.PLAIN,state.font10);
                
	this.state = state;
	cgrp = new CheckboxGroup();
	c1 = new Checkbox("Impedance",cgrp,true);
	c2 = new Checkbox("Admittance",cgrp,false);
        c1.setFont(newfont2);
        c2.setFont(newfont2);
	add(c1);
	add(c2);
	
        titlelabel.setBounds(state.s5,state.s80,state.s300,state.s30);
	titlelabel.setFont(newfont1);
        
        lab1[0].setBounds(state.s20,state.s134,state.s11,state.s25);
	text1[0].setBounds(state.s60,state.s137,state.s80,state.s20);
	lab1[0].setFont(newfont0);
	text1[0].setFont(newfont2);
	
        lab2[0].setBounds(state.s143,state.s134,state.s30,state.s25);
	text2[0].setBounds(state.s178,state.s137,state.s80,state.s20);
	lab2[0].setFont(newfont2);
	text2[0].setFont(newfont2);
        
	lab3[0].setBounds(state.s265,state.s134,state.s40,state.s25);
	lab3[0].setFont(newfont3);
	c1.setBounds(state.s55,state.s184,state.s110,state.s25);
	c1.setBackground(bgcolor);
	c2.setBounds(state.s170,state.s184,state.s110,state.s25);
	c2.setBackground(bgcolor);
	
        b1.setBounds(state.s105,state.s234,state.s100,state.s22);
        b1.setFont(newfont2);
        b1.setBackground(Color.white);
        
	//Listeners
	c1.addItemListener(this);
	c2.addItemListener(this);
    }
    
    public void paint(Graphics g){
	    g.clearRect(0,0,getSize().width,getSize().height);
	    g.setColor(bgcolor.darker());
	    g.fillRect(0,getSize().height-2,getSize().width,2);
	    g.fillRect(getSize().width-2,0,2,getSize().height);
	    g.setColor(bgcolor.brighter());
	    g.fillRect(0,0,2,getSize().height-1);
	    g.fillRect(0,0,getSize().width-2,2);
    
	    g.setColor(Color.red.darker());
            // Border for text1
            g.drawRect(state.s60-1,state.s137-1,state.s80+2,state.s20+2);
            // Border for text2
            g.drawRect(state.s178-1,state.s137-1,state.s80+2,state.s20+2);
            // Border for bupdate
            g.drawRect(state.s105-1,state.s234-1,state.s100+2,state.s22+2);
            
            g.setColor(Color.black);
            g.setFont(newfont1);
            g.drawString("L",state.s30,state.s156);
            g.drawString("=",state.s45,state.s151);
    }
    
    public void itemStateChanged(ItemEvent evt){
	if(evt.getSource()==c1){
	    lab1[0].setText("Z");
            lab1[0].setFont(newfont0);
	    lab3[0].setText("  [ \u03a9 ]");
            lab3[0].setFont(newfont3);
	    text1[0].setText(""+state.ZL.Real());
	    text2[0].setText(""+state.ZL.Imaginary());
	}
	
	else if(evt.getSource()==c2){
	    lab1[0].setText("Y");
            lab1[0].setFont(newfont0);
	    lab3[0].setText("  [ S ]");
            lab3[0].setFont(newfont3);
	    text1[0].setText(""+state.YL.Real());
	    text2[0].setText(""+state.YL.Imaginary());
	}
    }
}
