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

public class Reset extends Panel{
    private static final Color bgcolor = Color.white;
    public Checkbox Ebox, Hbox;
    public Button b1;
    public int CurrentTime, TotalTime;
    private Image im;
    private int SCROLLMIN=0, SCROLLMAX=30;
    public JSlider slider1;
    
    private Graphics buf;
    PlaneWave_State state;
        
    public Reset(PlaneWave_State state){
	super();
        this.state = state;
        
        setLayout(null);
	setBackground(bgcolor);
        
        b1 = new Button("Reset");
        b1.setBackground(Color.white);
        b1.setFont(new Font("SanSerif",Font.PLAIN,state.s10));
	add(b1);
	b1.setBounds(state.s5,state.s25,state.s50,state.s18);
        
        Panel pb1 = new Panel();
            pb1.setBackground(Color.black);
            add(pb1);
            pb1.setBounds(state.s5-1,state.s25-1,state.s50+2,state.s18+2);

	slider1 = new JSlider(SCROLLMIN,SCROLLMAX);
	slider1.setValue(1);
	//slider1 = new Scrollbar(Scrollbar.HORIZONTAL,1,1,SCROLLMIN,SCROLLMAX);
	slider1.setBounds(state.s5,state.s5,state.s70,state.s15);
        slider1.setBackground(Color.white);
	add(slider1);
        /*
        Panel pslid1 = new Panel();
            pslid1.setBackground(Color.black);
            add(pslid1);
            pslid1.setBounds(state.s5-1,state.s5-1,state.s70+2,state.s15+2);
	*/      
	Ebox = new Checkbox("",null,true);
        Hbox = new Checkbox("",null,true);
        //add(Ebox);
	Ebox.setBackground(bgcolor);
        Ebox.setForeground(Color.red);
        
        //add(Hbox);
	Hbox.setBackground(bgcolor);       
        Hbox.setForeground(Color.blue);
        
        Ebox.setBounds(state.s5,state.s2,state.s15,state.s20);
        Hbox.setBounds(state.s65,state.s2,state.s15,state.s20);
        //frequency = 1.0E9;
        CurrentTime = 0;
        TotalTime = 0;
    }
    
    public void paint(Graphics g){
	    if(im == null){
		im = createImage(getSize().width,getSize().height);
		buf = im.getGraphics();
		drawGraph(buf);
	    }
	    else{
		drawGraph(buf);
	    }
	    g.drawImage(im,0,0,null);
	    slider1.requestFocusInWindow();
    }
	
	//Addition to reduce flicker new routine
    public void update(Graphics g){		// added to avoid clearing
	    paint(g);
    }
    
    public void drawGraph(Graphics g){
	g.setColor(bgcolor);	
	g.fillRect(0,0,getSize().width-1,getSize().height-1);  
        
        Graphics2D g2d = (Graphics2D)g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
        int x, y, dx;
	x = state.s80;
        y = state.s18;
        dx = state.s3;
        g.setColor(Color.blue);
        g.drawLine(x,y,x,y-state.s2);
        x+=dx;
        g.drawLine(x,y,x,y-state.s7);
        x+=dx;
        g.drawLine(x,y,x,y-state.s10);
        x+=dx;
        g.drawLine(x,y,x,y-state.s11);
        x+=dx;
        g.drawLine(x,y,x,y-state.s10);
        x+=dx;
        g.drawLine(x,y,x,y-state.s7);
        x+=dx;
        g.drawLine(x,y,x,y-state.s2);
    }
}
