//TransLoadPanel

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.lang.*;
import javax.swing.*;
import javax.swing.event.*;


public class TransShuntPanel extends PC implements ItemListener, ActionListener, ChangeListener{
    public Checkbox c1, c2;
    protected CheckboxGroup cgrp;
    private Trans_State state;
    public JSlider slider;
    private Label labela, labelb;
    private static final Color tinta = new Color(236,236,236);
    private static final Color bgcolor = new Color(236,236,236);
    protected Font labfont;
    protected Font titfont;
	
    //private static final Color bgcolor = new Color(200,200,200);
    
    public TransShuntPanel(String titulo, String[] nome, String[] unidade, Trans_State state){
	super(titulo,nome,unidade);
	setLayout(null);
	setBackground(bgcolor);
	this.state = state;
        labfont = new Font("SanSerif",Font.PLAIN,state.font12);
        titfont = new Font("SanSerif",Font.PLAIN,state.font14);

        labela = new Label("no shunt",Label.CENTER);
        labela.setFont(labfont);
        labela.setForeground(Color.blue.darker());
        labela.setBounds(state.s235,state.s82,state.s60,state.s15);
        labelb = new Label("selected",Label.CENTER);
        labelb.setFont(labfont);
        labelb.setForeground(Color.blue.darker());
        labelb.setBounds(state.s235,state.s95,state.s60,state.s15);
        add(labela); add(labelb);
        
	cgrp = new CheckboxGroup();
	c1 = new Checkbox("Impedance",cgrp,true);
	c2 = new Checkbox("Admittance",cgrp,false);
	add(c1);
	add(c2);
	titlelabel.setBounds(state.s15,state.s5,state.s150,state.s20);
        titlelabel.setForeground(Color.red.darker());
        titlelabel.setFont(titfont);
	lab1[0].setBounds(state.s25,state.s33,state.s10,state.s12);
	text1[0].setBounds(state.s55,state.s30,state.s80,state.s20);
	
	lab2[0].setBounds(state.s145,state.s30,state.s20,state.s20);
	text2[0].setBounds(state.s170,state.s30,state.s80,state.s20);
	
	lab3[0].setBounds(state.s255,state.s30,state.s45,state.s20);
	c1.setBounds(state.s55,state.s60,state.s100,state.s20);
	c1.setBackground(bgcolor);
	c2.setBounds(state.s170,state.s60,state.s100,state.s20);
	c2.setBackground(bgcolor);
	b1.setBounds(state.s120,state.s110,state.s70,state.s20);
        b1.setBackground(bgcolor);
	
	text1[0].setText(""+state.ZS.Real());
	text2[0].setText(""+state.ZS.Imaginary());
	
        slider = new JSlider(0,11 -1);
	slider.setValue(0);
        slider.setBounds(state.s80,state.s85,state.s150,state.s15);
        add(slider);
        /*
        Panel p0 = new Panel();
	    p0.setBackground(Color.cyan);
	    add(p0);
	    p0.setBounds(state.s80-1,state.s85-1,state.s150+2,state.s15+2);
	    
        Panel p00 = new Panel();
	    p00.setBackground(Color.black);
	    add(p00);
	    p00.setBounds(state.s80-1,state.s85-1,state.s150+4,state.s15+4);
	*/
	//Listeners
        b1.addActionListener(this);
	c1.addItemListener(this);
	c2.addItemListener(this);
        slider.addChangeListener(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.black);	
	      
	    MaestroG.subscripter("   ","S","=",g,state.font12,state.s25,state.s45);
            g.setColor(Color.red.darker());
            g.drawRect(state.s52,state.s27,state.s84,state.s24);
            g.drawRect(state.s167,state.s27,state.s84,state.s24);
            g.drawRect(state.s117,state.s107,state.s74,state.s24);
            
            if(state.ShuntPlace < 1){
                //g.drawString("no shunt",10,90);
                //g.drawString("selected",10,105);
            }
            else if(state.ShuntPlace >0){
                //g.drawString("position",10,90);
                //g.drawString("# "+state.ShuntPlace,10,105);
                
            }
	    slider.requestFocusInWindow();
    }
    
    public void actionPerformed(ActionEvent evt){
        if(evt.getSource()==b1){
            
        }
    }
    
    public void itemStateChanged(ItemEvent evt){
	if(evt.getSource()==c1){
	    lab1[0].setText("Z");
	    lab3[0].setText("[ \u03a9 ]");
	    text1[0].setText(""+state.ZS.Real());
	    text2[0].setText(""+state.ZS.Imaginary());
	    state.is_Load_Ztype = true;
            
	}
	
	else if(evt.getSource()==c2){
	    lab1[0].setText("Y");
	    lab3[0].setText("[ S ]");
	    text1[0].setText(""+state.YS.Real());
	    text2[0].setText(""+state.YS.Imaginary());
	    state.is_Load_Ztype = false;
            
	}
    }
    public void stateChanged(ChangeEvent evt){
	  if(evt.getSource()==slider){
                if(slider.getValue()>0){
                    labela.setText("position");
                    labelb.setText("# "+slider.getValue());
                }
                else{
                    labela.setText("no shunt");
                    labelb.setText("selected");
                }
                repaint();
	  }
	}
}
