//OutPanel.java
import java.awt.*;
import java.text.*;

public class OutPanel extends Canvas{
	private Image im;
	private Graphics buf;
    DecimalFormat df = new DecimalFormat("###.###");
    //System.out.println(df.format(PI));	
	DipoleAnt ant;
	
	OutPanel(DipoleAnt ant){
		super();
		this.ant=ant;
		Color bgcolor = new Color(236,236,221);
		setBackground(bgcolor);
	}
        
        /*public class OutPanel extends Panel{
                DipoleAnt ant;
                OutPanel(DipoleAnt ant){
                        super();
                        this.ant=ant;
                        Color bgcolor = new Color(236,236,221);
                        setBackground(bgcolor);
                }
        */	
	
	public void drawCanvas(Graphics g){
	        Graphics2D g2d = (Graphics2D)g;
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
                g.clearRect(0,0,getSize().width,getSize().height);
            
		int xshift = 0; //ant.s10;
		g.setColor(new Color(236,236,221));
		g.fillRect(0,0,getSize().width,getSize().height);	
                g.setColor(Color.black);
		g.drawRect(0,0,getSize().width-1,getSize().height-1);	

		g.setFont(new Font("SanSerif",Font.BOLD,ant.font13));
		g.setColor(Color.red);
		g.drawString("Output Data",ant.s10,ant.s20);
		
                g.setColor(Color.black);
		if(ant.dipolelength != 0.0){
		    g.setFont(new Font("SanSerif",Font.BOLD,ant.font13));

		    //df.format(PI)
		    
                    g.drawString("Radiated Power = "+df.format(ant.radiation_power)+"",
				 ant.s10, ant.s40);
		    
                    g.setFont(new Font("Serif",Font.PLAIN,ant.font14));
		    g.drawString("[ W ]",ant.s200 + ant.s55,ant.s40);
                    
		    g.setFont(new Font("SanSerif",Font.BOLD,ant.font13));
                    g.drawString("Radiation Resistance = "+df.format(ant.radiation_resistance)+"",
				 ant.s10, ant.s60);
                    g.setFont(new Font("Serif",Font.PLAIN,ant.font14));
		    g.drawString("[ \u03a9 ]",ant.s200 + ant.s55,ant.s60);
		}
		else{
		    g.setFont(new Font("Sanserif",Font.BOLD,ant.font13));
                    g.drawString("Radiated Power = 0.0",ant.s10,ant.s40);
                    g.setFont(new Font("Serif",Font.PLAIN,ant.font14));
		    g.drawString("[ W ]",ant.s200 + ant.s55,ant.s40);
		    
                    g.setFont(new Font("SanSerif",Font.BOLD,ant.font13));
                    g.drawString("Radiation Resistance = 0.0",ant.s10,ant.s60);
		    g.setFont(new Font("Serif",Font.PLAIN,ant.font14));
		    g.drawString("[ \u03a9 ]",ant.s200 + ant.s55,ant.s60);
		}
                g.setFont(new Font("Sanserif",Font.BOLD,ant.font13));
		g.drawString("Directivity = "+df.format(ant.directivity),ant.s10,ant.s80);
	}

	public void paint(Graphics g){
		
	    if(im == null){
		im = createImage(getSize().width,getSize().height);
		buf = im.getGraphics();
		drawCanvas(buf);
	    }
	    else{
		drawCanvas(buf);
	    }
		
	    g.drawImage(im,0,0,null);
	    
	}
    
	//Addition to reduce flicker new routine
	public void update(Graphics g){		// added to avoid clearing
	    paint(g);
	}


	public void redraw(){
                repaint();
        }
	

	
}

