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

//Author:H.Hakan GENÇ - 2001-2002 - Turkiye
//GSM: +905052610452, E-mail:hasanhakangenc@hotmail.com

class DirencDialog extends Frame implements ActionListener{
	double direnc_double;
	int direnc_int, uzunluk;
	boolean focus = false;
	Double direncDouble;
	String dizi = new String();
	Opamp opamp;
	TextField metinKutusu = new TextField(3);
	Label baslik;
	Panel butun = new Panel();
	String yeniayarla = new String("");
	String direnc;
	
	public DirencDialog(Opamp opamp, String direnc) {
	//	super(getFrame(aplet),"RC");
		this.direnc = direnc;
		setTitle(direnc);
		baslik = new Label(direnc + "= ");
		this.opamp=opamp;
		setBackground(Color.white);
		setLayout(new BorderLayout());
		
		metinKutusu.addActionListener(this);
		butun.setLayout(new FlowLayout(FlowLayout.LEFT));
		butun.add(baslik);
		butun.add(metinKutusu);
		add(butun,"Center");
	}
	
	public void actionPerformed(ActionEvent olay){
		TextField alan = (TextField)olay.getSource();
		dizi = alan.getText();
		uzunluk = dizi.length();
		for(int i=0;i<uzunluk;i++){
			if(dizi.charAt(i) != '0' && dizi.charAt(i) != '1' && dizi.charAt(i) != '2' && 
			   dizi.charAt(i) != '3' && dizi.charAt(i) != '4' && dizi.charAt(i) != '5' && 
			   dizi.charAt(i) != '6' && dizi.charAt(i) != '7' && dizi.charAt(i) != '8' && 
			   dizi.charAt(i) != '9'){
				focus = true;
			}
			else focus = false;
		}
		if(!focus){								
			direncDouble = Double.valueOf(alan.getText());
			direnc_double = direncDouble.doubleValue();
			direnc_int = (int)direnc_double;
			
			if(direnc_double > 0){
				alan.setText(yeniayarla);
				dispose();
				opamp.guncelle(direnc_double, direnc);
			}
			
			else if(direnc_double == 0){
				alan.requestFocus();
				alan.selectAll();
			}
		}
		
		else if(focus){
			alan.requestFocus();
			alan.selectAll();
		}
	}
	
	static Frame getFrame(Component c) {
		Frame     frame = null;

        while((c = c.getParent()) != null) {
            if(c instanceof Frame)
                frame = (Frame)c;
        }
        return frame;
    }
	
	public Dimension getPreferredSize(){
		return new Dimension(110,80);
	}	
}