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

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

class PhiControls extends Panel implements ChangeListener{
	StateVars state;
	
	JSlider slider1;
	final int ScrollMin=0;
	final int ScrollMax=1001;
	public double phi;
	
	public PhiControls (StateVars state){
		super();
		this.state = state;
		setBackground(Color.white);
		setLayout(null);
		//slider1=new Scrollbar(Scrollbar.HORIZONTAL,ScrollMax/2,1,ScrollMin,ScrollMax);
		slider1 = new JSlider(ScrollMin,ScrollMax);
		slider1.setValue(ScrollMax/2);
		slider1.addChangeListener(this);
                slider1.setBackground(Color.white);
		add(slider1);
		
		slider1.setBounds(state.s27,state.s5,state.s370,state.s15);
		/*
		Panel pslider1 = new Panel();
		    pslider1.setBackground(Color.black);
		    add(pslider1);
		    pslider1.setBounds(state.s27-1,state.s5-1,state.s370+2,state.s15+2);
		*/
		state.frequency_scan = state.frequency;
	}
	
	public void paint(Graphics g){
	
	    g.setColor(Color.green);
	    MaestroG.fillCircle(state.s12,state.s12,state.s6,g);
	    g.setColor(Color.black);
	    MaestroG.drawCircle(state.s12,state.s12,state.s6,g);
	    
	    g.drawLine(0,0,0,getSize().height);
	    g.drawLine(getSize().width-1,0,getSize().width-1,getSize().height);
	    slider1.requestFocusInWindow();
	}

    	public void jrupdate(){
		Graphics g = getGraphics();
		
		if(slider1.getValue()>ScrollMax){
		    slider1.setValue(ScrollMax-1);
		}
		else{
		   
		}
		g.dispose();
	}

    
	public void stateChanged(ChangeEvent evt){
		if(slider1.getValue()>ScrollMax){
		    state.frequency = state.frequency_maximum;
		}
		else{
		    state.frequency_scan=((double)slider1.getValue()/(double)(ScrollMax-1))*(state.frequency_maximum - state.frequency_minimum)+state.frequency_minimum;
		}
		//System.out.println(state.frequency_scan);
		jrupdate();
	}
}
