//NewGuideOutputPanel12.java
import java.awt.*;
import java.awt.event.*;

public class NewGuideOutputPanel12 extends Panel{
	NewGuide_State state;
	private static final Color bgcolor = new Color(236,236,221);
	
        private Font labfont;
	private Font titlefont;
	
        Label titlelabel;	
	public Choice c1;
	public TitleCanvas11 tcanvas11;
	public NewOutputCanvasW rwocW; 
    //public NewOutputCanvasZ rwocZ;  NOT USED
	
        		
	public NewGuideOutputPanel12(NewGuide_State state){
	    super();
	    setLayout(null);
	    this.state = state;
	    setBackground(bgcolor);
	    
            labfont=new Font("SanSerif",Font.PLAIN,state.font12);
            titlefont=new Font("SanSerif",Font.BOLD,state.font16);
	
            state.microFlag12 = false;
            
	    titlelabel = new Label("    Current Data",Label.LEFT);
	    //add(titlelabel);
	    titlelabel.setBounds(state.s5,state.s5,state.s95,state.s15);    
	    titlelabel.setFont(titlefont);
	    
	    tcanvas11 = new TitleCanvas11(state);
	    add(tcanvas11);
	    tcanvas11.setBounds(0,0,state.s200+state.s95,state.s25);
	    
	    rwocW = new NewOutputCanvasW(state);
	    rwocW.setVisible(true);
	    //rwocZ = new NewOutputCanvasZ(state);   not used
	    //rwocZ.setVisible(true);
	    
	    
	    rwocW.setBounds(0,state.s50,state.s200+state.s60,(int)Math.ceil(state.sfactor*18120));
	    //rwocW.setBounds(0,50,260,18250);
	    rwocW.setVisible(true);
	    add(rwocW);

	    rwocW.setBounds(0,state.s50,state.s200+state.s60,(int)Math.ceil(state.sfactor*18120));
            
            //rwocZ = new NewOutputCanvasZ(state);
	    //rwocZ.setBounds(0,state.s50,state.s200+state.s60,(int)Math.ceil(state.sfactor*18120));
	    //rwocZ.setBounds(0,50,260,18250);
            //rwocZ.setVisible(true);
            //add(rwocZ);  
	}	
}

class TitleCanvas11 extends Canvas{
	private Font normalfont;
	private Font subfont;
	private Font normalfontB;
	private Font symbolfont;
	private Font symbolfont2;
	
	NewGuide_State state;
        
	public TitleCanvas11(NewGuide_State state){
	    super();
	    this.state = state;
            
            normalfont = new Font("Serif",Font.PLAIN,state.font12);
            subfont = new Font("Serif",Font.PLAIN,state.font10);
            normalfontB = new Font("Serif",Font.BOLD,state.font12);
	
            symbolfont = new Font("Serif",Font.PLAIN,state.font16);
            symbolfont2 = new Font("Serif",Font.PLAIN,state.font14);
	}
	
	public void paint(Graphics g){
	    Graphics2D g2d = (Graphics2D)g;
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
            
            g.setFont(symbolfont);
	    g.setColor(Color.blue);   
	    
	    MaestroG.subscripter3("             I ( z )","","",g,state.font12,state.s15,state.s17);
	}
}

class NewOutputCanvasW extends Canvas{
	private Font normalfont;
	private Font subfont;
	private Font normalfontB;
	private Font symbolfont;
	private Font symbolfont2;
	
        NewGuide_State state;
	
        public NewOutputCanvasW(NewGuide_State state){
	    super();
	    this.state = state;
            
            normalfont = new Font("Serif",Font.PLAIN,state.font12);
            subfont = new Font("Serif",Font.PLAIN,state.font10);
            normalfontB = new Font("Serif",Font.BOLD,state.font12);
	
            symbolfont = new Font("Serif",Font.PLAIN,state.font16);
            symbolfont2 = new Font("Serif",Font.PLAIN,state.font14);
	}
	
	public void paint(Graphics g){
            Graphics2D g2d = (Graphics2D)g;
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
            
	    int x, y, dx, dxx, dy, dyy;
	    double v_normalized, f_normalized;
	    double wavelength_factor = state.wavelength/state.DipoleLength_meters;
	    String stmp;
	    String lambda;
	    FontMetrics fm;
	    x = state.s10;
	    y = state.s12;
	    dx = state.s80;
	    dxx = state.s15;
	    g.setFont(normalfont);
	    fm = g.getFontMetrics();
	    
	    dy = state.s12;
	    dyy = dy+state.s2;
	    int intfac = state.s1;
	    
	    g.setFont(symbolfont);
	    g.getFontMetrics();
	    lambda="\u03bb";
	    g.setFont(normalfont);
	    g.getFontMetrics();
	    
	    g.setColor(Color.black);
	    if(state.currentMAX >=1.0){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		{
		    
		    g.setColor(Color.blue);
		    g.drawString(MaestroA.rounder(1.0e3*(state.zposLarge[i]+state.DipoleLength_meters/2),3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    
		    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    g.drawString(state.currentLarge[i].toString(Complex.CARTESIAN,6)+" [ A ]",x,y);
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s200+state.s50,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
	    }
	    
	  }
	  else if(state.currentMAX < 1.0 && state.currentMAX >= 1.0e-3){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		{
		    g.setColor(Color.blue);
		    g.drawString(MaestroA.rounder(1.0e3*state.zposLarge[i],3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    
		    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e3)).toString(Complex.CARTESIAN,6)+" [ mA ]",x,y);
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s250,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
	    }
	 }
	 else if(state.currentMAX < 1.0e-3 && state.currentMAX >= 1.0e-6){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		
		{
		    g.setColor(Color.blue);
		    g.drawString(MaestroA.rounder(1.0e3*state.zposLarge[i],3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    
		    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e6)).toString(Complex.CARTESIAN,6)+" [ \u00b5A ]",x,y);
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s250,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
	    }
	 }
	 else if(state.currentMAX < 1.0e-6 && state.currentMAX >= 1.0e-9){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		
		{
		    g.setColor(Color.blue);
		    g.drawString(MaestroA.rounder(1.0e3*state.zposLarge[i],3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    		    
		    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e9)).toString(Complex.CARTESIAN,6)+" [ nA ]",x,y);
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s250,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
	    }
	 }
	 else if(state.currentMAX < 1.0e-9){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		
		{
		    g.setColor(Color.blue);
		    g.drawString(MaestroA.rounder(1.0e3*state.zposLarge[i],3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    
		    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e12)).toString(Complex.CARTESIAN,6)+" [ pA ]",x,y);
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s250,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
	    }
	   }
	     
	}
}

/* NOT USED
class NewOutputCanvasZ extends Canvas{
	private Font normalfont;
	private Font subfont;
	private Font normalfontB;
	private Font symbolfont;
	private Font symbolfont2;
	
        NewGuide_State state;
        
	public NewOutputCanvasZ(NewGuide_State state){
	    super();
	    this.state = state;
            
            normalfont = new Font("Serif",Font.PLAIN,state.font12);
            subfont = new Font("Serif",Font.PLAIN,state.font10);
            normalfontB = new Font("Serif",Font.BOLD,state.font12);
	
            symbolfont = new Font("Serif",Font.PLAIN,state.font16);
            symbolfont2 = new Font("Serif",Font.PLAIN,state.font14);
	}
	
	public void paint(Graphics g){
            Graphics2D g2d = (Graphics2D)g;
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
            
	    int x, y, dx, dxx, dy, dyy;
	    double v_normalized;
	    double wavelength_factor = state.wavelength/state.DipoleLength_meters;
	    FontMetrics fm;
            
            x = state.s10;
	    y = state.s12;
	    dx = state.s80;
	    dxx = state.s15;
	    g.setFont(normalfont);
	    fm = g.getFontMetrics();
	    
	    dy = state.s12;
	    dyy = dy+state.s2;
	    int intfac = state.s1;
            
            String lambda;
	    
	    g.setFont(symbolfont);
	    g.getFontMetrics();
	    lambda="\u03bb";
	    g.setFont(normalfont);
	    g.getFontMetrics();
	    
	    g.setColor(Color.black);
	    
	    if(state.currentMAX >=1.0){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		
		{
		    g.setColor(Color.blue);
		    
		    g.drawString(MaestroA.rounder(1.0e3*state.zposLarge[i],3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    
		    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    if(!state.microFlag12){
		    g.drawString(state.currentLarge[i].toString(Complex.POLAR_RADIAN,6)+" [ A ]",x,y);
		    }
		    if(state.microFlag12){
		    g.drawString(state.currentLarge[i].toString(Complex.POLAR_DEGREE,6)+" [ A ]",x,y);
		    }
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s250,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
	    }
	    
	    }
	  else if(state.currentMAX < 1.0 && state.currentMAX >= 1.0e-3){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		
		{
		    g.setColor(Color.blue);
		    
		    g.drawString(MaestroA.rounder(1.0e3*state.zposLarge[i],3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    
		    
		    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    
		    if(!state.microFlag12){
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e3)).toString(Complex.POLAR_RADIAN,6)+" [ mA ]",x,y);
		    }
		    if(state.microFlag12){
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e3)).toString(Complex.POLAR_DEGREE,6)+" [ mA ]",x,y);
		    }
		    
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s250,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
	    }
	   }
	   else if(state.currentMAX < 1.0e-3 && state.currentMAX >= 1.0e-6){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		
		{  
		    g.setColor(Color.blue);
		    
		    g.drawString(MaestroA.rounder(1.0e3*state.zposLarge[i],3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    
		    		    
		    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    
		    if(!state.microFlag12){
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e6)).toString(Complex.POLAR_RADIAN,6)+" [ \u00b5A ]",x,y);
		    }
		    if(state.microFlag12){
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e6)).toString(Complex.POLAR_DEGREE,6)+" [ \u00b5A ]",x,y);
		    }
		    
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s250,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
		
	    }
	   }
	   else if(state.currentMAX < 1.0e-6 && state.currentMAX >= 1.0e-9){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		
		{    
		    g.setColor(Color.blue);
		    
		    g.drawString(MaestroA.rounder(1.0e3*state.zposLarge[i],3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    
		    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    
		    if(!state.microFlag12){
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e9)).toString(Complex.POLAR_RADIAN,6)+" [ nA ]",x,y);
		    }
		    if(state.microFlag12){
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e9)).toString(Complex.POLAR_DEGREE,6)+" [ nA ]",x,y);
		    }
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s250,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
	    }
	   }
	   else if(state.currentMAX < 1.0e-9){
	    
	    for(int i=0;i<state.NsectionsLarge;i++){
		
		{    
		    g.setColor(Color.blue);
		    
		    g.drawString(MaestroA.rounder(1.0e3*state.zposLarge[i],3)+" [ mm ]    "
				 +MaestroA.rounder(state.zLambda[i],5)+"   "+lambda,x,y);
		    
                    g.setColor(Color.red);
		    g.drawString(""+i,state.s200+state.s35,y);
		    y+=dyy;
		    g.setColor(Color.black);
		    
		    if(!state.microFlag12){
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e12)).toString(Complex.POLAR_RADIAN,6)+" [ pA ]",x,y);
		    }
		    if(state.microFlag12){
		    g.drawString((Complex.Multiply(state.currentLarge[i],1.0e12)).toString(Complex.POLAR_DEGREE,6)+" [ pA ]",x,y);
		    }
		    g.setColor(Color.red);
		    g.drawLine(x,y+dyy/2-state.s2,x+state.s250,y+dyy/2-state.s2);
		    y+=dyy+state.s4;
		}
	    }
	   }
	}
}
*/
