//Trans_MultiGraphPanelA.java
//This is for frequency plots
import java.awt.*;

public class Trans_MultiGraphPanelA extends Panel{
    private static final Color bgcolor = new Color(255,255,255);
    private static final Color tinta2 = new Color(236,236,221); // kaki
    private static final Color tinta = new Color(236,236,221);
    private Font titlefont;
    private Font labfont;
    private Label titlelabel, selectlabel;   
    private String titulo;
    public Choice c1;
    TransGraphCanvas tgc1, tgc2;
    TransGraphCanvas2 tgc3, tgc4;
    Trans_State state;
    
    public Trans_MultiGraphPanelA(String titulo, Trans_State state){
	super();
	this.titulo=titulo;
	this.state = state;
        setLayout(null);
        
	setBackground(bgcolor);
	titlefont = new Font("SanSerif",Font.BOLD,state.font16);
        labfont = new Font("SanSerif",Font.PLAIN,state.font11);
        
	c1 = new Choice();
	c1.addItem(" Select a Plot");
	c1.addItem(" Impedance");
	c1.addItem(" Admittance");
	c1.addItem(" Reflection Coefficient");
        
	c1.setBackground(bgcolor);
	c1.setForeground(Color.black);
	c1.setFont(labfont);
	titlelabel = new Label(titulo,Label.LEFT);
	titlelabel.setFont(titlefont);
        titlelabel.setForeground(Color.black);
	
	selectlabel = new Label("click to select plot",Label.CENTER);
	selectlabel.setFont(labfont);
	selectlabel.setBackground(bgcolor);
	selectlabel.setForeground(Color.blue);
	
	tgc1 = new TransGraphCanvas(state);
	tgc2 = new TransGraphCanvas(state);
	tgc3 = new TransGraphCanvas2(state);
	tgc4 = new TransGraphCanvas2(state);
	add(titlelabel);
	//add(selectlabel);
	add(c1);
	add(tgc1);
	add(tgc2);
	add(tgc3);
	add(tgc4);
	titlelabel.setBounds(state.s5,state.s5,state.s200,state.s20);
        selectlabel.setBounds(state.s200,state.s30,state.s100,state.s25);
	// CHANGE #1 6/18/2017 =================================================
        // MODIFY LINE BELOW
        //c1.setBounds(5,30,195,25);
        c1.setBounds(state.s5,state.s30,state.s200+state.s50,state.s25);
        //======================================================================
        	
	tgc1.setBounds(state.s5,state.s61,state.s795,state.s156);
	tgc2.setBounds(state.s5,state.s225,state.s795,state.s156);
	tgc3.setBounds(state.s5,state.s61,state.s795,state.s156);
	tgc4.setBounds(state.s5,state.s225,state.s795,state.s156);
	Panel pgraph1 = new Panel();
	    pgraph1.setBackground(tinta2);
	    add(pgraph1);
	    pgraph1.setBounds(state.s5-1,state.s61-1,state.s795+2,state.s156+2);
	    
	Panel pgraph2 = new Panel();
	    pgraph2.setBackground(Color.black);
	    add(pgraph2);
	    pgraph2.setBounds(state.s5-2,state.s61-2,state.s795+4,state.s156+4);
	    
	Panel pgraph3 = new Panel();
	    pgraph3.setBackground(tinta2);
	    add(pgraph3);
	    pgraph3.setBounds(state.s5-1,state.s225-1,state.s795+2,state.s156+2);
	
	Panel pgraph4 = new Panel();
	    pgraph4.setBackground(Color.black);
	    add(pgraph4);
	    pgraph4.setBounds(state.s5-2,state.s225-2,state.s795+4,state.s156+4);
    }			
	
    public synchronized void plotImpedance(Trans_State state){
	state.ScanImpedance();
	tgc1.setTitle("Re{ Z(d) }  [ \u03a9 ]");
	tgc1.reset();
	tgc1.setDynamics(false);
	tgc1.setYRangeMin(0.0);
	//tgc1.reset();
	tgc1.plot(state.x,state.y1);
	tgc2.setTitle("Im{ Z(d) }  [ \u03a9 ]");
	tgc2.setDynamics(false);
	tgc2.reset();
	tgc2.plot(state.x,state.y2);
    }
    
    public synchronized void plotAdmittance(Trans_State state){
	state.ScanAdmittance();
	
	tgc1.setTitle("Re{ Y(d) }  [ S ]");
	tgc1.reset();
	tgc1.setDynamics(false);
	tgc1.setYRangeMin(0.0);
	
	//tgc1.reset();
	tgc1.plot(state.x,state.y1);
	
	tgc2.setTitle("Im{ Y(d) }  [ S ]");
	tgc2.setDynamics(false);
	tgc2.reset();
	tgc2.plot(state.x,state.y2);
    }
    
    public synchronized void plotReflectionCoefficient(Trans_State state){
	state.ScanReflectionCoefficient();
	//HERE
	tgc1.setTitle("Re{ \uu0393 (d)}");
	tgc1.setDynamics(false);
	tgc1.setYRangeMax(1.0);
	tgc1.setYRangeMin(-1.0);
	tgc1.plot(state.x,state.y1);
	//HERE
	tgc2.setTitle(" Im{ \uu0393 (d)}");
	tgc2.setDynamics(false);
	tgc2.setYRangeMax(1.0);
	tgc2.setYRangeMin(-1.0);
	tgc2.plot(state.x,state.y2);
    }
}
