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

//public class DetailedAntenna extends Frame implements ActionListener, AdjustmentListener, ItemListener{
public class DetailedAntenna extends Frame implements ActionListener, ChangeListener, ItemListener{
    Instructions instructions;
    Panel instrFrame;
    TitlePanel titlepanel;
    NewGuideCanvas rwc;
    NewGuideCanvas2 rwc2;
    NewGuideInputPanel inputpanel;
    NewGuideInputPanel2 inputpanel2;
    NewGuide_State state;
    SetRangePanel a_panel, frequency_panel, current_panel, distance_panel;
    NewGuideControlPanel rwconp;
    
    NewGuideOutputPanel outputpanel;
    NewGuideOutputPanel2 outputpanel2;
    NewGuideOutputPanel3 outputpanel3;
    NewGuideOutputPanel4 outputpanel4;
    NewGuideOutputPanel5 outputpanel5;
    NewGuideOutputPanel6 outputpanel6;
    NewGuideOutputPanel7 outputpanel7;
    NewGuideOutputPanel8 outputpanel8;
    NewGuideOutputPanel9 outputpanel9;
    NewGuideOutputPanel10 outputpanel10;
    NewGuideOutputPanel11 outputpanel11;
    NewGuideOutputPanel12 outputpanel12;
    NewGuideOutputPanel13 outputpanel13;
    NewGuideOutputPanel14 outputpanel14;
    
    NewGuideOutputPanel15 outputpanel15;
    NewGuideOutputPanel16 outputpanel16;
    NewGuideOutputPanel17 outputpanel17;
    NewGuideOutputPanel18 outputpanel18;
    
    NewGuideGraphCanvasDir rwcca;
    NewGuideGraphCanvasRadRes rwccb;
    NewGuideGraphCanvasRadReac rwccb2;
    NewGuideGraphCanvasInRes rwccd;
    NewGuideGraphCanvasInReac rwccd2;
    NewGuideGraphCanvasF rwccf;
    NewGuideGraphCanvasG rwccg;
    NewGuideGraphCanvasH rwcch;
    NewGuideGraphCanvasJ rwccj;
    NewGuideGraphCanvasK rwcck;
    NewGuideGraphCanvasL rwccl;
    NewGuideGraphCanvasM rwccm;
    NewGuideGraphCanvasN rwccn;
    NewGuideGraphCanvasO rwcco;
    NewGuideGraphCanvasP rwccp;
    NewGuideGraphCanvasQ rwccq;
    NewGuideGraphCanvasR rwccr;
    NewGuideGraphCanvasS rwccs;
    
    NewGuideGraphCanvasT rwcct;
    NewGuideGraphCanvasU rwccu;
    NewGuideGraphCanvasV rwccv;
    NewGuideGraphCanvasW rwccw;
    
    ControlPanel3D cp3D;
    
    public int xmove;
    public int ymove;
        
    public static int xmove_main = 30;
    public static int ymove_main = 30;
    public static int base_width = 626;
    public static int base_height = 570;
    public static final double Xfactor = 0.85;
    
    // java - get screen size using the Toolkit class
    public static final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    public static final int screenHeight = screenSize.height;
    public static final int screenWidth = screenSize.width;
        
    //MANUAL TESTING OF DIFFERENT SCREEN SIZES
    //public static final int screenHeight = 768;
    //public static final int screenWidth = 1360;
    
    //public static final int screenHeight = 800;
    //public static final int screenWidth = 1280;
    
    //public static final int screenHeight = 720;
    //public static final int screenWidth = 1280;
    //==========================================================================

    //public static double sfactorm = 1.25;
    //public double sfactor = sfactorm;

    public static final double sfactorm = MaestroA.rounder(Xfactor*((double)screenHeight/(double)base_height),2);
    public int sfactor1 = screenHeight;
    public int sfactor2 = screenWidth;
    public double sfactor3 = Math.min(sfactor1, sfactor2);
    public double sfactor = MaestroA.rounder(Xfactor*(double)(sfactor3/base_height),2);

    //==============================================================================
    // Look-up table to simplify zoom 
    public int ss2 = (int)Math.ceil(2*sfactor);
    public int s1 = (int)Math.ceil(1*sfactor);
    public int s2 = (int)Math.ceil(2*sfactor);
    public int s3 = (int)Math.ceil(3*sfactor);
    public int s4 = (int)Math.ceil(4*sfactor);
    public int s5 = (int)Math.ceil(5*sfactor);
    public int s6 = (int)Math.ceil(6*sfactor);
    public int s7 = (int)Math.ceil(7*sfactor);
    public int s8 = (int)Math.ceil(8*sfactor);
    public int s9 = (int)Math.ceil(9*sfactor);
    public int s10 = (int)Math.ceil(10*sfactor);
    public int s11 = (int)Math.ceil(11*sfactor);
    public int s12 = (int)Math.ceil(12*sfactor);
    public int s13 = (int)Math.ceil(13*sfactor);
    public int s14 = (int)Math.ceil(14*sfactor);
    public int s15 = (int)Math.ceil(15*sfactor);
    public int s16 = (int)Math.ceil(16*sfactor);
    public int s17 = (int)Math.ceil(17*sfactor);
    public int s18 = (int)Math.ceil(18*sfactor);
    public int s19 = (int)Math.ceil(19*sfactor);
    public int s20 = (int)Math.ceil(20*sfactor);
    public int s21 = (int)Math.ceil(21*sfactor);
    public int s22 = (int)Math.ceil(22*sfactor);
    public int s23 = (int)Math.ceil(23*sfactor);
    public int s24 = (int)Math.ceil(24*sfactor);
    public int s25 = (int)Math.ceil(25*sfactor);
    public int s26 = (int)Math.ceil(26*sfactor);
    public int s27 = (int)Math.ceil(27*sfactor);
    public int s28 = (int)Math.ceil(28*sfactor);
    public int s29 = (int)Math.ceil(29*sfactor);
    public int s30 = (int)Math.ceil(30*sfactor);
    public int s31 = (int)Math.ceil(31*sfactor);
    public int s32 = (int)Math.ceil(32*sfactor);
    public int s33 = (int)Math.ceil(33*sfactor);
    public int s34 = (int)Math.ceil(34*sfactor);
    public int s35 = (int)Math.ceil(35*sfactor);
    public int s36 = (int)Math.ceil(36*sfactor);
    public int s37 = (int)Math.ceil(37*sfactor);
    public int s38 = (int)Math.ceil(38*sfactor);
    public int s39 = (int)Math.ceil(39*sfactor);
    public int s40 = (int)Math.ceil(40*sfactor);
    public int s41 = (int)Math.ceil(41*sfactor);
    public int s42 = (int)Math.ceil(42*sfactor);
    public int s43 = (int)Math.ceil(43*sfactor);
    public int s44 = (int)Math.ceil(44*sfactor);
    public int s45 = (int)Math.ceil(45*sfactor);
    public int s46 = (int)Math.ceil(46*sfactor);
    public int s47 = (int)Math.ceil(47*sfactor);
    public int s48 = (int)Math.ceil(48*sfactor);
    public int s49 = (int)Math.ceil(49*sfactor);
    public int s50 = (int)Math.ceil(50*sfactor);
    public int s51 = (int)Math.ceil(51*sfactor);
    public int s52 = (int)Math.ceil(52*sfactor);
    public int s53 = (int)Math.ceil(53*sfactor);
    public int s54 = (int)Math.ceil(54*sfactor);
    public int s55 = (int)Math.ceil(55*sfactor);
    public int s56 = (int)Math.ceil(56*sfactor);
    public int s57 = (int)Math.ceil(57*sfactor);
    public int s58 = (int)Math.ceil(58*sfactor);
    public int s59 = (int)Math.ceil(59*sfactor);
    public int s60 = (int)Math.ceil(60*sfactor);
    public int s61 = (int)Math.ceil(61*sfactor);
    public int s62 = (int)Math.ceil(62*sfactor);
    public int s63 = (int)Math.ceil(63*sfactor);
    public int s64 = (int)Math.ceil(64*sfactor);
    public int s65 = (int)Math.ceil(65*sfactor);
    public int s66 = (int)Math.ceil(66*sfactor);
    public int s67 = (int)Math.ceil(67*sfactor);
    public int s68 = (int)Math.ceil(68*sfactor);
    public int s69 = (int)Math.ceil(69*sfactor);
    public int s70 = (int)Math.ceil(70*sfactor);
    public int s71 = (int)Math.ceil(71*sfactor);
    public int s72 = (int)Math.ceil(72*sfactor);
    public int s73 = (int)Math.ceil(73*sfactor);
    public int s74 = (int)Math.ceil(74*sfactor);
    public int s75 = (int)Math.ceil(75*sfactor);
    public int s76 = (int)Math.ceil(76*sfactor);
    public int s77 = (int)Math.ceil(77*sfactor);
    public int s78 = (int)Math.ceil(78*sfactor);
    public int s79 = (int)Math.ceil(79*sfactor);
    public int s80 = (int)Math.ceil(80*sfactor);
    public int s81 = (int)Math.ceil(81*sfactor);
    public int s82 = (int)Math.ceil(82*sfactor);
    public int s83 = (int)Math.ceil(83*sfactor);
    public int s84 = (int)Math.ceil(84*sfactor);
    public int s85 = (int)Math.ceil(85*sfactor);
    public int s86 = (int)Math.ceil(86*sfactor);
    public int s87 = (int)Math.ceil(87*sfactor);
    public int s88 = (int)Math.ceil(88*sfactor);
    public int s89 = (int)Math.ceil(89*sfactor);
    public int s90 = (int)Math.ceil(90*sfactor);
    public int s91 = (int)Math.ceil(91*sfactor);
    public int s92 = (int)Math.ceil(92*sfactor);
    public int s93 = (int)Math.ceil(93*sfactor);
    public int s94 = (int)Math.ceil(94*sfactor);
    public int s95 = (int)Math.ceil(95*sfactor);
    public int s96 = (int)Math.ceil(96*sfactor);
    public int s97 = (int)Math.ceil(97*sfactor);
    public int s98 = (int)Math.ceil(98*sfactor);
    public int s99 = (int)Math.ceil(99*sfactor);
    
    public int s100 = (int)Math.ceil(100*sfactor);
    public int s101 = (int)Math.ceil(101*sfactor);
    public int s102 = (int)Math.ceil(102*sfactor);
    public int s103 = (int)Math.ceil(103*sfactor);
    public int s104 = (int)Math.ceil(104*sfactor);
    public int s105 = (int)Math.ceil(105*sfactor);
    public int s106 = (int)Math.ceil(106*sfactor);
    public int s107 = (int)Math.ceil(107*sfactor);
    public int s108 = (int)Math.ceil(108*sfactor);
    public int s109 = (int)Math.ceil(109*sfactor);
    public int s110 = (int)Math.ceil(110*sfactor);
    public int s111 = (int)Math.ceil(111*sfactor);
    public int s112 = (int)Math.ceil(112*sfactor);
    public int s113 = (int)Math.ceil(113*sfactor);
    public int s114 = (int)Math.ceil(114*sfactor);
    public int s115 = (int)Math.ceil(115*sfactor);
    public int s116 = (int)Math.ceil(116*sfactor);
    public int s117 = (int)Math.ceil(117*sfactor);
    public int s118 = (int)Math.ceil(118*sfactor);
    public int s119 = (int)Math.ceil(119*sfactor);
    public int s120 = (int)Math.ceil(120*sfactor);
    public int s121 = (int)Math.ceil(121*sfactor);
    public int s122 = (int)Math.ceil(122*sfactor);
    public int s123 = (int)Math.ceil(123*sfactor);
    public int s124 = (int)Math.ceil(124*sfactor);
    public int s125 = (int)Math.ceil(125*sfactor);
    public int s126 = (int)Math.ceil(126*sfactor);
    public int s127 = (int)Math.ceil(127*sfactor);
    public int s128 = (int)Math.ceil(128*sfactor);
    public int s129 = (int)Math.ceil(129*sfactor);
    public int s130 = (int)Math.ceil(130*sfactor);
    public int s131 = (int)Math.ceil(131*sfactor);
    public int s132 = (int)Math.ceil(132*sfactor);
    public int s133 = (int)Math.ceil(133*sfactor);
    public int s134 = (int)Math.ceil(134*sfactor);
    public int s135 = (int)Math.ceil(135*sfactor);
    public int s136 = (int)Math.ceil(136*sfactor);
    public int s137 = (int)Math.ceil(137*sfactor);
    public int s138 = (int)Math.ceil(138*sfactor);
    public int s139 = (int)Math.ceil(139*sfactor);
    public int s140 = (int)Math.ceil(140*sfactor);
    public int s141 = (int)Math.ceil(141*sfactor);
    public int s142 = (int)Math.ceil(142*sfactor);
    public int s143 = (int)Math.ceil(143*sfactor);
    public int s144 = (int)Math.ceil(144*sfactor);
    public int s145 = (int)Math.ceil(145*sfactor);
    public int s146 = (int)Math.ceil(146*sfactor);
    public int s147 = (int)Math.ceil(147*sfactor);
    public int s148 = (int)Math.ceil(148*sfactor);
    public int s149 = (int)Math.ceil(149*sfactor);
    public int s150 = (int)Math.ceil(150*sfactor);
    public int s151 = (int)Math.ceil(151*sfactor);
    public int s152 = (int)Math.ceil(152*sfactor);
    public int s153 = (int)Math.ceil(153*sfactor);
    public int s154 = (int)Math.ceil(154*sfactor);
    public int s155 = (int)Math.ceil(155*sfactor);
    public int s156 = (int)Math.ceil(156*sfactor);
    public int s157 = (int)Math.ceil(157*sfactor);
    public int s158 = (int)Math.ceil(158*sfactor);
    public int s159 = (int)Math.ceil(159*sfactor);
    public int s160 = (int)Math.ceil(160*sfactor);
    public int s161 = (int)Math.ceil(161*sfactor);
    public int s162 = (int)Math.ceil(162*sfactor);
    public int s163 = (int)Math.ceil(163*sfactor);
    public int s164 = (int)Math.ceil(164*sfactor);
    public int s165 = (int)Math.ceil(165*sfactor);
    public int s166 = (int)Math.ceil(166*sfactor);
    public int s167 = (int)Math.ceil(167*sfactor);
    public int s168 = (int)Math.ceil(168*sfactor);
    public int s169 = (int)Math.ceil(169*sfactor);
    public int s170 = (int)Math.ceil(170*sfactor);
    public int s171 = (int)Math.ceil(171*sfactor);
    public int s172 = (int)Math.ceil(172*sfactor);
    public int s173 = (int)Math.ceil(173*sfactor);
    public int s174 = (int)Math.ceil(174*sfactor);
    public int s175 = (int)Math.ceil(175*sfactor);
    public int s176 = (int)Math.ceil(176*sfactor);
    public int s177 = (int)Math.ceil(177*sfactor);
    public int s178 = (int)Math.ceil(178*sfactor);
    public int s179 = (int)Math.ceil(179*sfactor);
    public int s180 = (int)Math.ceil(180*sfactor);
    public int s181 = (int)Math.ceil(181*sfactor);
    public int s182 = (int)Math.ceil(182*sfactor);
    public int s183 = (int)Math.ceil(183*sfactor);
    public int s184 = (int)Math.ceil(184*sfactor);
    public int s185 = (int)Math.ceil(185*sfactor);
    public int s186 = (int)Math.ceil(186*sfactor);
    public int s187 = (int)Math.ceil(187*sfactor);
    public int s188 = (int)Math.ceil(188*sfactor);
    public int s189 = (int)Math.ceil(189*sfactor);
    public int s190 = (int)Math.ceil(190*sfactor);
    public int s191 = (int)Math.ceil(191*sfactor);
    public int s192 = (int)Math.ceil(192*sfactor);
    public int s193 = (int)Math.ceil(193*sfactor);
    public int s194 = (int)Math.ceil(194*sfactor);
    public int s195 = (int)Math.ceil(195*sfactor);
    public int s196 = (int)Math.ceil(196*sfactor);
    public int s197 = (int)Math.ceil(197*sfactor);
    public int s198 = (int)Math.ceil(198*sfactor);
    public int s199 = (int)Math.ceil(199*sfactor);
    
    public int s200 = (int)Math.ceil(200*sfactor);
    public int s201 = (int)Math.ceil(201*sfactor);
    public int s202 = (int)Math.ceil(202*sfactor);
    public int s203 = (int)Math.ceil(203*sfactor);
    public int s204 = (int)Math.ceil(204*sfactor);
    public int s205 = (int)Math.ceil(205*sfactor);
    public int s206 = (int)Math.ceil(206*sfactor);
    public int s207 = (int)Math.ceil(207*sfactor);
    public int s208 = (int)Math.ceil(208*sfactor);
    public int s209 = (int)Math.ceil(209*sfactor);
    public int s210 = (int)Math.ceil(210*sfactor);
    public int s211 = (int)Math.ceil(211*sfactor);
    public int s212 = (int)Math.ceil(212*sfactor);
    public int s213 = (int)Math.ceil(213*sfactor);
    public int s214 = (int)Math.ceil(214*sfactor);
    public int s215 = (int)Math.ceil(215*sfactor);
    public int s216 = (int)Math.ceil(216*sfactor);
    public int s217 = (int)Math.ceil(217*sfactor);
    public int s218 = (int)Math.ceil(218*sfactor);
    public int s219 = (int)Math.ceil(219*sfactor);
    public int s220 = (int)Math.ceil(220*sfactor);
    public int s221 = (int)Math.ceil(221*sfactor);
    public int s222 = (int)Math.ceil(222*sfactor);
    public int s223 = (int)Math.ceil(223*sfactor);
    public int s224 = (int)Math.ceil(224*sfactor);
    public int s225 = (int)Math.ceil(225*sfactor);
    public int s226 = (int)Math.ceil(226*sfactor);
    public int s227 = (int)Math.ceil(227*sfactor);
    public int s228 = (int)Math.ceil(228*sfactor);
    public int s229 = (int)Math.ceil(229*sfactor);
    public int s230 = (int)Math.ceil(230*sfactor);
    public int s231 = (int)Math.ceil(231*sfactor);
    public int s232 = (int)Math.ceil(232*sfactor);
    public int s233 = (int)Math.ceil(233*sfactor);
    public int s234 = (int)Math.ceil(234*sfactor);
    public int s235 = (int)Math.ceil(235*sfactor);
    public int s236 = (int)Math.ceil(236*sfactor);
    public int s237 = (int)Math.ceil(237*sfactor);
    public int s238 = (int)Math.ceil(238*sfactor);
    public int s239 = (int)Math.ceil(239*sfactor);
    public int s240 = (int)Math.ceil(240*sfactor);
    public int s241 = (int)Math.ceil(241*sfactor);
    public int s242 = (int)Math.ceil(242*sfactor);
    public int s243 = (int)Math.ceil(243*sfactor);
    public int s244 = (int)Math.ceil(244*sfactor);
    public int s245 = (int)Math.ceil(245*sfactor);
    public int s246 = (int)Math.ceil(246*sfactor);
    public int s247 = (int)Math.ceil(247*sfactor);
    public int s248 = (int)Math.ceil(248*sfactor);
    public int s249 = (int)Math.ceil(249*sfactor);
    public int s250 = (int)Math.ceil(250*sfactor);
    public int s251 = (int)Math.ceil(251*sfactor);
    public int s252 = (int)Math.ceil(252*sfactor);
    public int s253 = (int)Math.ceil(253*sfactor);
    public int s254 = (int)Math.ceil(254*sfactor);
    public int s255 = (int)Math.ceil(255*sfactor);
    public int s256 = (int)Math.ceil(256*sfactor);
    public int s257 = (int)Math.ceil(257*sfactor);
    public int s258 = (int)Math.ceil(258*sfactor);
    public int s259 = (int)Math.ceil(259*sfactor);
    public int s260 = (int)Math.ceil(260*sfactor);
    public int s261 = (int)Math.ceil(261*sfactor);
    public int s262 = (int)Math.ceil(262*sfactor);
    public int s263 = (int)Math.ceil(263*sfactor);
    public int s264 = (int)Math.ceil(264*sfactor);
    public int s265 = (int)Math.ceil(265*sfactor);
    public int s266 = (int)Math.ceil(266*sfactor);
    public int s267 = (int)Math.ceil(267*sfactor);
    public int s268 = (int)Math.ceil(268*sfactor);
    public int s269 = (int)Math.ceil(269*sfactor);
    public int s270 = (int)Math.ceil(270*sfactor);
    public int s271 = (int)Math.ceil(271*sfactor);
    public int s272 = (int)Math.ceil(272*sfactor);
    public int s273 = (int)Math.ceil(273*sfactor);
    public int s274 = (int)Math.ceil(274*sfactor);
    public int s275 = (int)Math.ceil(275*sfactor);
    public int s276 = (int)Math.ceil(276*sfactor);
    public int s277 = (int)Math.ceil(277*sfactor);
    public int s278 = (int)Math.ceil(278*sfactor);
    public int s279 = (int)Math.ceil(279*sfactor);
    public int s280 = (int)Math.ceil(280*sfactor);
    public int s281 = (int)Math.ceil(281*sfactor);
    public int s282 = (int)Math.ceil(282*sfactor);
    public int s283 = (int)Math.ceil(283*sfactor);
    public int s284 = (int)Math.ceil(284*sfactor);
    public int s285 = (int)Math.ceil(285*sfactor);
    public int s286 = (int)Math.ceil(286*sfactor);
    public int s287 = (int)Math.ceil(287*sfactor);
    public int s288 = (int)Math.ceil(288*sfactor);
    public int s289 = (int)Math.ceil(289*sfactor);
    public int s290 = (int)Math.ceil(290*sfactor);
    public int s291 = (int)Math.ceil(291*sfactor);
    public int s292 = (int)Math.ceil(292*sfactor);
    public int s293 = (int)Math.ceil(293*sfactor);
    public int s294 = (int)Math.ceil(294*sfactor);
    public int s295 = (int)Math.ceil(295*sfactor);
    public int s296 = (int)Math.ceil(296*sfactor);
    public int s297 = (int)Math.ceil(297*sfactor);
    public int s298 = (int)Math.ceil(298*sfactor);
    public int s299 = (int)Math.ceil(299*sfactor);
    
    public int s300 = (int)Math.ceil(300*sfactor);
    public int s301 = (int)Math.ceil(301*sfactor);
    public int s302 = (int)Math.ceil(302*sfactor);
    public int s303 = (int)Math.ceil(303*sfactor);
    public int s304 = (int)Math.ceil(304*sfactor);
    public int s305 = (int)Math.ceil(305*sfactor);
    public int s306 = (int)Math.ceil(306*sfactor);
    public int s307 = (int)Math.ceil(307*sfactor);
    public int s308 = (int)Math.ceil(308*sfactor);
    public int s309 = (int)Math.ceil(309*sfactor);
    public int s310 = (int)Math.ceil(310*sfactor);
    public int s311 = (int)Math.ceil(311*sfactor);
    public int s312 = (int)Math.ceil(312*sfactor);
    public int s313 = (int)Math.ceil(313*sfactor);
    public int s314 = (int)Math.ceil(314*sfactor);
    public int s315 = (int)Math.ceil(315*sfactor);
    public int s316 = (int)Math.ceil(316*sfactor);
    public int s317 = (int)Math.ceil(317*sfactor);
    public int s318 = (int)Math.ceil(318*sfactor);
    public int s319 = (int)Math.ceil(319*sfactor);
    public int s320 = (int)Math.ceil(320*sfactor);
    public int s321 = (int)Math.ceil(321*sfactor);
    public int s322 = (int)Math.ceil(322*sfactor);
    public int s323 = (int)Math.ceil(323*sfactor);
    public int s324 = (int)Math.ceil(324*sfactor);
    public int s325 = (int)Math.ceil(325*sfactor);
    public int s326 = (int)Math.ceil(326*sfactor);
    public int s327 = (int)Math.ceil(327*sfactor);
    public int s328 = (int)Math.ceil(328*sfactor);
    public int s329 = (int)Math.ceil(329*sfactor);
    public int s330 = (int)Math.ceil(330*sfactor);
    public int s331 = (int)Math.ceil(331*sfactor);
    public int s332 = (int)Math.ceil(332*sfactor);
    public int s333 = (int)Math.ceil(333*sfactor);
    public int s334 = (int)Math.ceil(334*sfactor);
    public int s335 = (int)Math.ceil(335*sfactor);
    public int s336 = (int)Math.ceil(336*sfactor);
    public int s337 = (int)Math.ceil(337*sfactor);
    public int s338 = (int)Math.ceil(338*sfactor);
    public int s339 = (int)Math.ceil(339*sfactor);
    public int s340 = (int)Math.ceil(340*sfactor);
    public int s341 = (int)Math.ceil(341*sfactor);
    public int s342 = (int)Math.ceil(342*sfactor);
    public int s343 = (int)Math.ceil(343*sfactor);
    public int s344 = (int)Math.ceil(344*sfactor);
    public int s345 = (int)Math.ceil(345*sfactor);
    public int s346 = (int)Math.ceil(346*sfactor);
    public int s347 = (int)Math.ceil(347*sfactor);
    public int s348 = (int)Math.ceil(348*sfactor);
    public int s349 = (int)Math.ceil(349*sfactor);
    public int s350 = (int)Math.ceil(350*sfactor);
    public int s351 = (int)Math.ceil(351*sfactor);
    public int s352 = (int)Math.ceil(352*sfactor);
    public int s353 = (int)Math.ceil(353*sfactor);
    public int s354 = (int)Math.ceil(354*sfactor);
    public int s355 = (int)Math.ceil(355*sfactor);
    public int s356 = (int)Math.ceil(356*sfactor);
    public int s357 = (int)Math.ceil(357*sfactor);
    public int s358 = (int)Math.ceil(358*sfactor);
    public int s359 = (int)Math.ceil(359*sfactor);
    public int s360 = (int)Math.ceil(360*sfactor);
    public int s361 = (int)Math.ceil(361*sfactor);
    public int s362 = (int)Math.ceil(362*sfactor);
    public int s363 = (int)Math.ceil(363*sfactor);
    public int s364 = (int)Math.ceil(364*sfactor);
    public int s365 = (int)Math.ceil(365*sfactor);
    public int s366 = (int)Math.ceil(366*sfactor);
    public int s367 = (int)Math.ceil(367*sfactor);
    public int s368 = (int)Math.ceil(368*sfactor);
    public int s369 = (int)Math.ceil(369*sfactor);
    public int s370 = (int)Math.ceil(370*sfactor);
    public int s371 = (int)Math.ceil(371*sfactor);
    public int s372 = (int)Math.ceil(372*sfactor);
    public int s373 = (int)Math.ceil(373*sfactor);
    public int s374 = (int)Math.ceil(374*sfactor);
    public int s375 = (int)Math.ceil(375*sfactor);
    public int s376 = (int)Math.ceil(376*sfactor);
    public int s377 = (int)Math.ceil(377*sfactor);
    public int s378 = (int)Math.ceil(378*sfactor);
    public int s379 = (int)Math.ceil(379*sfactor);
    public int s380 = (int)Math.ceil(380*sfactor);
    public int s381 = (int)Math.ceil(381*sfactor);
    public int s382 = (int)Math.ceil(382*sfactor);
    public int s383 = (int)Math.ceil(383*sfactor);
    public int s384 = (int)Math.ceil(384*sfactor);
    public int s385 = (int)Math.ceil(385*sfactor);
    public int s386 = (int)Math.ceil(386*sfactor);
    public int s387 = (int)Math.ceil(387*sfactor);
    public int s388 = (int)Math.ceil(388*sfactor);
    public int s389 = (int)Math.ceil(389*sfactor);
    public int s390 = (int)Math.ceil(390*sfactor);
    public int s391 = (int)Math.ceil(391*sfactor);
    public int s392 = (int)Math.ceil(392*sfactor);
    public int s393 = (int)Math.ceil(393*sfactor);
    public int s394 = (int)Math.ceil(394*sfactor);
    public int s395 = (int)Math.ceil(395*sfactor);
    public int s396 = (int)Math.ceil(396*sfactor);
    public int s397 = (int)Math.ceil(397*sfactor);
    public int s398 = (int)Math.ceil(398*sfactor);
    public int s399 = (int)Math.ceil(399*sfactor);
    
    public int s400 = (int)Math.ceil(400*sfactor);
    public int s401 = (int)Math.ceil(401*sfactor);
    public int s402 = (int)Math.ceil(402*sfactor);
    public int s403 = (int)Math.ceil(403*sfactor);
    public int s404 = (int)Math.ceil(404*sfactor);
    public int s405 = (int)Math.ceil(405*sfactor);
    public int s406 = (int)Math.ceil(406*sfactor);
    public int s407 = (int)Math.ceil(407*sfactor);
    public int s408 = (int)Math.ceil(408*sfactor);
    public int s409 = (int)Math.ceil(409*sfactor);
    public int s410 = (int)Math.ceil(410*sfactor);
    public int s411 = (int)Math.ceil(411*sfactor);
    public int s412 = (int)Math.ceil(412*sfactor);
    public int s413 = (int)Math.ceil(413*sfactor);
    public int s414 = (int)Math.ceil(414*sfactor);
    public int s415 = (int)Math.ceil(415*sfactor);
    public int s416 = (int)Math.ceil(416*sfactor);
    public int s417 = (int)Math.ceil(417*sfactor);
    public int s418 = (int)Math.ceil(418*sfactor);
    public int s419 = (int)Math.ceil(419*sfactor);
    public int s420 = (int)Math.ceil(420*sfactor);
    public int s421 = (int)Math.ceil(421*sfactor);
    public int s422 = (int)Math.ceil(422*sfactor);
    public int s423 = (int)Math.ceil(423*sfactor);
    public int s424 = (int)Math.ceil(424*sfactor);
    public int s425 = (int)Math.ceil(425*sfactor);
    public int s426 = (int)Math.ceil(426*sfactor);
    public int s427 = (int)Math.ceil(427*sfactor);
    public int s428 = (int)Math.ceil(428*sfactor);
    public int s429 = (int)Math.ceil(429*sfactor);
    public int s430 = (int)Math.ceil(430*sfactor);
    public int s431 = (int)Math.ceil(431*sfactor);
    public int s432 = (int)Math.ceil(432*sfactor);
    public int s433 = (int)Math.ceil(433*sfactor);
    public int s434 = (int)Math.ceil(434*sfactor);
    public int s435 = (int)Math.ceil(435*sfactor);
    public int s436 = (int)Math.ceil(36*sfactor);
    public int s437 = (int)Math.ceil(37*sfactor);
    public int s438 = (int)Math.ceil(38*sfactor);
    public int s439 = (int)Math.ceil(439*sfactor);
    public int s440 = (int)Math.ceil(440*sfactor);
    public int s441 = (int)Math.ceil(441*sfactor);
    public int s442 = (int)Math.ceil(442*sfactor);
    public int s443 = (int)Math.ceil(443*sfactor);
    public int s444 = (int)Math.ceil(444*sfactor);
    public int s445 = (int)Math.ceil(445*sfactor);
    public int s446 = (int)Math.ceil(446*sfactor);
    public int s447 = (int)Math.ceil(447*sfactor);
    public int s448 = (int)Math.ceil(448*sfactor);
    public int s449 = (int)Math.ceil(449*sfactor);
    public int s450 = (int)Math.ceil(450*sfactor);
    public int s451 = (int)Math.ceil(451*sfactor);
    public int s452 = (int)Math.ceil(452*sfactor);
    public int s453 = (int)Math.ceil(453*sfactor);
    public int s454 = (int)Math.ceil(454*sfactor);
    public int s455 = (int)Math.ceil(455*sfactor);
    public int s456 = (int)Math.ceil(456*sfactor);
    public int s457 = (int)Math.ceil(457*sfactor);
    public int s458 = (int)Math.ceil(458*sfactor);
    public int s459 = (int)Math.ceil(459*sfactor);
    public int s460 = (int)Math.ceil(460*sfactor);
    public int s461 = (int)Math.ceil(461*sfactor);
    public int s462 = (int)Math.ceil(462*sfactor);
    public int s463 = (int)Math.ceil(463*sfactor);
    public int s464 = (int)Math.ceil(464*sfactor);
    public int s465 = (int)Math.ceil(465*sfactor);
    public int s466 = (int)Math.ceil(466*sfactor);
    public int s467 = (int)Math.ceil(467*sfactor);
    public int s468 = (int)Math.ceil(468*sfactor);
    public int s469 = (int)Math.ceil(469*sfactor);
    public int s470 = (int)Math.ceil(470*sfactor);
    public int s471 = (int)Math.ceil(471*sfactor);
    public int s472 = (int)Math.ceil(472*sfactor);
    public int s473 = (int)Math.ceil(473*sfactor);
    public int s474 = (int)Math.ceil(474*sfactor);
    public int s475 = (int)Math.ceil(475*sfactor);
    public int s476 = (int)Math.ceil(476*sfactor);
    public int s477 = (int)Math.ceil(477*sfactor);
    public int s478 = (int)Math.ceil(478*sfactor);
    public int s479 = (int)Math.ceil(479*sfactor);
    public int s480 = (int)Math.ceil(480*sfactor);
    public int s481 = (int)Math.ceil(481*sfactor);
    public int s482 = (int)Math.ceil(482*sfactor);
    public int s483 = (int)Math.ceil(483*sfactor);
    public int s484 = (int)Math.ceil(484*sfactor);
    public int s485 = (int)Math.ceil(485*sfactor);
    public int s486 = (int)Math.ceil(486*sfactor);
    public int s487 = (int)Math.ceil(487*sfactor);
    public int s488 = (int)Math.ceil(488*sfactor);
    public int s489 = (int)Math.ceil(489*sfactor);
    public int s490 = (int)Math.ceil(490*sfactor);
    public int s491 = (int)Math.ceil(491*sfactor);
    public int s492 = (int)Math.ceil(492*sfactor);
    public int s493 = (int)Math.ceil(493*sfactor);
    public int s494 = (int)Math.ceil(494*sfactor);
    public int s495 = (int)Math.ceil(495*sfactor);
    public int s496 = (int)Math.ceil(496*sfactor);
    public int s497 = (int)Math.ceil(497*sfactor);
    public int s498 = (int)Math.ceil(498*sfactor);
    public int s499 = (int)Math.ceil(499*sfactor);
    
    public int s500 = (int)Math.ceil(500*sfactor);
    public int s501 = (int)Math.ceil(501*sfactor);
    public int s502 = (int)Math.ceil(502*sfactor);
    public int s503 = (int)Math.ceil(503*sfactor);
    public int s504 = (int)Math.ceil(504*sfactor);
    public int s505 = (int)Math.ceil(505*sfactor);
    public int s506 = (int)Math.ceil(506*sfactor);
    public int s507 = (int)Math.ceil(507*sfactor);
    public int s508 = (int)Math.ceil(508*sfactor);
    public int s509 = (int)Math.ceil(509*sfactor);
    public int s510 = (int)Math.ceil(510*sfactor);
    public int s511 = (int)Math.ceil(511*sfactor);
    public int s512 = (int)Math.ceil(512*sfactor);
    public int s513 = (int)Math.ceil(513*sfactor);
    public int s514 = (int)Math.ceil(514*sfactor);
    public int s515 = (int)Math.ceil(515*sfactor);
    public int s516 = (int)Math.ceil(516*sfactor);
    public int s517 = (int)Math.ceil(517*sfactor);
    public int s518 = (int)Math.ceil(518*sfactor);
    public int s519 = (int)Math.ceil(519*sfactor);
    public int s520 = (int)Math.ceil(520*sfactor);
    public int s521 = (int)Math.ceil(521*sfactor);
    public int s522 = (int)Math.ceil(522*sfactor);
    public int s523 = (int)Math.ceil(523*sfactor);
    public int s524 = (int)Math.ceil(524*sfactor);
    public int s525 = (int)Math.ceil(525*sfactor);
    public int s526 = (int)Math.ceil(526*sfactor);
    public int s527 = (int)Math.ceil(527*sfactor);
    public int s528 = (int)Math.ceil(528*sfactor);
    public int s529 = (int)Math.ceil(529*sfactor);
    public int s530 = (int)Math.ceil(530*sfactor);
    public int s531 = (int)Math.ceil(531*sfactor);
    public int s532 = (int)Math.ceil(532*sfactor);
    public int s533 = (int)Math.ceil(533*sfactor);
    public int s534 = (int)Math.ceil(534*sfactor);
    public int s535 = (int)Math.ceil(535*sfactor);
    public int s536 = (int)Math.ceil(536*sfactor);
    public int s537 = (int)Math.ceil(537*sfactor);
    public int s538 = (int)Math.ceil(538*sfactor);
    public int s539 = (int)Math.ceil(539*sfactor);
    public int s540 = (int)Math.ceil(540*sfactor);
    public int s541 = (int)Math.ceil(541*sfactor);
    public int s542 = (int)Math.ceil(542*sfactor);
    public int s543 = (int)Math.ceil(543*sfactor);
    public int s544 = (int)Math.ceil(544*sfactor);
    public int s545 = (int)Math.ceil(545*sfactor);
    public int s546 = (int)Math.ceil(546*sfactor);
    public int s547 = (int)Math.ceil(547*sfactor);
    public int s548 = (int)Math.ceil(548*sfactor);
    public int s549 = (int)Math.ceil(549*sfactor);
    public int s550 = (int)Math.ceil(550*sfactor);
    public int s551 = (int)Math.ceil(551*sfactor);
    public int s552 = (int)Math.ceil(552*sfactor);
    public int s553 = (int)Math.ceil(553*sfactor);
    public int s554 = (int)Math.ceil(554*sfactor);
    public int s555 = (int)Math.ceil(555*sfactor);
    public int s556 = (int)Math.ceil(556*sfactor);
    public int s557 = (int)Math.ceil(557*sfactor);
    public int s558 = (int)Math.ceil(558*sfactor);
    public int s559 = (int)Math.ceil(559*sfactor);
    public int s560 = (int)Math.ceil(560*sfactor);
    public int s561 = (int)Math.ceil(561*sfactor);
    public int s562 = (int)Math.ceil(562*sfactor);
    public int s563 = (int)Math.ceil(563*sfactor);
    public int s564 = (int)Math.ceil(564*sfactor);
    public int s565 = (int)Math.ceil(565*sfactor);
    public int s566 = (int)Math.ceil(566*sfactor);
    public int s567 = (int)Math.ceil(567*sfactor);
    public int s568 = (int)Math.ceil(568*sfactor);
    public int s569 = (int)Math.ceil(569*sfactor);
    public int s570 = (int)Math.ceil(570*sfactor);
    public int s571 = (int)Math.ceil(571*sfactor);
    public int s572 = (int)Math.ceil(572*sfactor);
    public int s573 = (int)Math.ceil(573*sfactor);
    public int s574 = (int)Math.ceil(574*sfactor);
    public int s575 = (int)Math.ceil(575*sfactor);
    public int s576 = (int)Math.ceil(576*sfactor);
    public int s577 = (int)Math.ceil(577*sfactor);
    public int s578 = (int)Math.ceil(578*sfactor);
    public int s579 = (int)Math.ceil(579*sfactor);
    public int s580 = (int)Math.ceil(580*sfactor);
    public int s581 = (int)Math.ceil(581*sfactor);
    public int s582 = (int)Math.ceil(582*sfactor);
    public int s583 = (int)Math.ceil(583*sfactor);
    public int s584 = (int)Math.ceil(584*sfactor);
    public int s585 = (int)Math.ceil(585*sfactor);
    public int s586 = (int)Math.ceil(586*sfactor);
    public int s587 = (int)Math.ceil(587*sfactor);
    public int s588 = (int)Math.ceil(588*sfactor);
    public int s589 = (int)Math.ceil(589*sfactor);
    public int s590 = (int)Math.ceil(590*sfactor);
    public int s591 = (int)Math.ceil(591*sfactor);
    public int s592 = (int)Math.ceil(592*sfactor);
    public int s593 = (int)Math.ceil(593*sfactor);
    public int s594 = (int)Math.ceil(594*sfactor);
    public int s595 = (int)Math.ceil(595*sfactor);
    public int s596 = (int)Math.ceil(596*sfactor);
    public int s597 = (int)Math.ceil(597*sfactor);
    public int s598 = (int)Math.ceil(598*sfactor);
    public int s599 = (int)Math.ceil(599*sfactor);
    
    public int s600 = (int)Math.ceil(600*sfactor);
    public int s601 = (int)Math.ceil(601*sfactor);
    public int s602 = (int)Math.ceil(602*sfactor);
    public int s603 = (int)Math.ceil(603*sfactor);
    public int s604 = (int)Math.ceil(604*sfactor);
    public int s605 = (int)Math.ceil(605*sfactor);
    public int s606 = (int)Math.ceil(606*sfactor);
    public int s607 = (int)Math.ceil(607*sfactor);
    public int s608 = (int)Math.ceil(608*sfactor);
    public int s609 = (int)Math.ceil(609*sfactor);
    public int s610 = (int)Math.ceil(610*sfactor);
    public int s611 = (int)Math.ceil(611*sfactor);
    public int s612 = (int)Math.ceil(612*sfactor);
    public int s613 = (int)Math.ceil(613*sfactor);
    public int s614 = (int)Math.ceil(614*sfactor);
    public int s615 = (int)Math.ceil(615*sfactor);
    public int s616 = (int)Math.ceil(616*sfactor);
    public int s617 = (int)Math.ceil(617*sfactor);
    public int s618 = (int)Math.ceil(618*sfactor);
    public int s619 = (int)Math.ceil(619*sfactor);
    public int s620 = (int)Math.ceil(620*sfactor);
    public int s621 = (int)Math.ceil(621*sfactor);
    public int s622 = (int)Math.ceil(622*sfactor);
    public int s623 = (int)Math.ceil(623*sfactor);
    public int s624 = (int)Math.ceil(624*sfactor);
    public int s625 = (int)Math.ceil(625*sfactor);
    public int s626 = (int)Math.ceil(626*sfactor);
    public int s627 = (int)Math.ceil(627*sfactor);
    public int s628 = (int)Math.ceil(628*sfactor);
    public int s629 = (int)Math.ceil(629*sfactor);
    public int s630 = (int)Math.ceil(630*sfactor);
    public int s631 = (int)Math.ceil(631*sfactor);
    public int s632 = (int)Math.ceil(632*sfactor);
    public int s633 = (int)Math.ceil(633*sfactor);
    public int s634 = (int)Math.ceil(634*sfactor);
    public int s635 = (int)Math.ceil(635*sfactor);
    public int s636 = (int)Math.ceil(636*sfactor);
    public int s637 = (int)Math.ceil(637*sfactor);
    public int s638 = (int)Math.ceil(638*sfactor);
    public int s639 = (int)Math.ceil(639*sfactor);
    public int s640 = (int)Math.ceil(640*sfactor);
    public int s641 = (int)Math.ceil(641*sfactor);
    public int s642 = (int)Math.ceil(642*sfactor);
    public int s643 = (int)Math.ceil(643*sfactor);
    public int s644 = (int)Math.ceil(644*sfactor);
    public int s645 = (int)Math.ceil(645*sfactor);
    public int s646 = (int)Math.ceil(646*sfactor);
    public int s647 = (int)Math.ceil(647*sfactor);
    public int s648 = (int)Math.ceil(648*sfactor);
    public int s649 = (int)Math.ceil(649*sfactor);
    public int s650 = (int)Math.ceil(650*sfactor);
    public int s651 = (int)Math.ceil(651*sfactor);
    public int s652 = (int)Math.ceil(652*sfactor);
    public int s653 = (int)Math.ceil(653*sfactor);
    public int s654 = (int)Math.ceil(54*sfactor);
    public int s655 = (int)Math.ceil(655*sfactor);
    public int s656 = (int)Math.ceil(656*sfactor);
    public int s657 = (int)Math.ceil(657*sfactor);
    public int s658 = (int)Math.ceil(658*sfactor);
    public int s659 = (int)Math.ceil(659*sfactor);
    public int s660 = (int)Math.ceil(660*sfactor);
    public int s661 = (int)Math.ceil(661*sfactor);
    public int s662 = (int)Math.ceil(662*sfactor);
    public int s663 = (int)Math.ceil(663*sfactor);
    public int s664 = (int)Math.ceil(664*sfactor);
    public int s665 = (int)Math.ceil(665*sfactor);
    public int s666 = (int)Math.ceil(666*sfactor);
    public int s667 = (int)Math.ceil(667*sfactor);
    public int s668 = (int)Math.ceil(668*sfactor);
    public int s669 = (int)Math.ceil(669*sfactor);
    public int s670 = (int)Math.ceil(670*sfactor);
    public int s671 = (int)Math.ceil(671*sfactor);
    public int s672 = (int)Math.ceil(672*sfactor);
    public int s673 = (int)Math.ceil(673*sfactor);
    public int s674 = (int)Math.ceil(674*sfactor);
    public int s675 = (int)Math.ceil(675*sfactor);
    public int s676 = (int)Math.ceil(676*sfactor);
    public int s677 = (int)Math.ceil(677*sfactor);
    public int s678 = (int)Math.ceil(678*sfactor);
    public int s679 = (int)Math.ceil(679*sfactor);
    public int s680 = (int)Math.ceil(680*sfactor);
    public int s681 = (int)Math.ceil(681*sfactor);
    public int s682 = (int)Math.ceil(682*sfactor);
    public int s683 = (int)Math.ceil(683*sfactor);
    public int s684 = (int)Math.ceil(684*sfactor);
    public int s685 = (int)Math.ceil(685*sfactor);
    public int s686 = (int)Math.ceil(686*sfactor);
    public int s687 = (int)Math.ceil(687*sfactor);
    public int s688 = (int)Math.ceil(688*sfactor);
    public int s689 = (int)Math.ceil(689*sfactor);
    public int s690 = (int)Math.ceil(690*sfactor);
    public int s691 = (int)Math.ceil(691*sfactor);
    public int s692 = (int)Math.ceil(692*sfactor);
    public int s693 = (int)Math.ceil(693*sfactor);
    public int s694 = (int)Math.ceil(694*sfactor);
    public int s695 = (int)Math.ceil(695*sfactor);
    public int s696 = (int)Math.ceil(696*sfactor);
    public int s697 = (int)Math.ceil(697*sfactor);
    public int s698 = (int)Math.ceil(698*sfactor);
    public int s699 = (int)Math.ceil(699*sfactor);
        
    public int s700 = (int)Math.ceil(700*sfactor);
    public int s701 = (int)Math.ceil(701*sfactor);
    public int s702 = (int)Math.ceil(702*sfactor);
    public int s703 = (int)Math.ceil(703*sfactor);
    public int s704 = (int)Math.ceil(704*sfactor);
    public int s705 = (int)Math.ceil(705*sfactor);
    public int s706 = (int)Math.ceil(706*sfactor);
    public int s707 = (int)Math.ceil(707*sfactor);
    public int s708 = (int)Math.ceil(708*sfactor);
    public int s709 = (int)Math.ceil(709*sfactor);
    public int s710 = (int)Math.ceil(710*sfactor);
    public int s711 = (int)Math.ceil(711*sfactor);
    public int s712 = (int)Math.ceil(712*sfactor);
    public int s713 = (int)Math.ceil(713*sfactor);
    public int s714 = (int)Math.ceil(714*sfactor);
    public int s715 = (int)Math.ceil(715*sfactor);
    public int s716 = (int)Math.ceil(716*sfactor);
    public int s717 = (int)Math.ceil(717*sfactor);
    public int s718 = (int)Math.ceil(718*sfactor);
    public int s719 = (int)Math.ceil(719*sfactor);
    public int s720 = (int)Math.ceil(720*sfactor);
    public int s721 = (int)Math.ceil(721*sfactor);
    public int s722 = (int)Math.ceil(722*sfactor);
    public int s723 = (int)Math.ceil(723*sfactor);
    public int s724 = (int)Math.ceil(724*sfactor);
    public int s725 = (int)Math.ceil(725*sfactor);
    public int s726 = (int)Math.ceil(726*sfactor);
    public int s727 = (int)Math.ceil(727*sfactor);
    public int s728 = (int)Math.ceil(728*sfactor);
    public int s729 = (int)Math.ceil(729*sfactor);
    public int s730 = (int)Math.ceil(730*sfactor);
    public int s731 = (int)Math.ceil(731*sfactor);
    public int s732 = (int)Math.ceil(732*sfactor);
    public int s733 = (int)Math.ceil(733*sfactor);
    public int s734 = (int)Math.ceil(734*sfactor);
    public int s735 = (int)Math.ceil(735*sfactor);
    public int s736 = (int)Math.ceil(736*sfactor);
    public int s737 = (int)Math.ceil(737*sfactor);
    public int s738 = (int)Math.ceil(738*sfactor);
    public int s739 = (int)Math.ceil(739*sfactor);
    public int s740 = (int)Math.ceil(740*sfactor);
    public int s741 = (int)Math.ceil(741*sfactor);
    public int s742 = (int)Math.ceil(742*sfactor);
    public int s743 = (int)Math.ceil(743*sfactor);
    public int s744 = (int)Math.ceil(744*sfactor);
    public int s745 = (int)Math.ceil(745*sfactor);
    public int s746 = (int)Math.ceil(746*sfactor);
    public int s747 = (int)Math.ceil(747*sfactor);
    public int s748 = (int)Math.ceil(748*sfactor);
    public int s749 = (int)Math.ceil(749*sfactor);
    public int s750 = (int)Math.ceil(750*sfactor);
    public int s751 = (int)Math.ceil(751*sfactor);
    public int s752 = (int)Math.ceil(752*sfactor);
    public int s753 = (int)Math.ceil(753*sfactor);
    public int s754 = (int)Math.ceil(754*sfactor);
    public int s755 = (int)Math.ceil(755*sfactor);
    public int s756 = (int)Math.ceil(756*sfactor);
    public int s757 = (int)Math.ceil(757*sfactor);
    public int s758 = (int)Math.ceil(758*sfactor);
    public int s759 = (int)Math.ceil(759*sfactor);
    public int s760 = (int)Math.ceil(760*sfactor);
    public int s761 = (int)Math.ceil(761*sfactor);
    public int s762 = (int)Math.ceil(762*sfactor);
    public int s763 = (int)Math.ceil(763*sfactor);
    public int s764 = (int)Math.ceil(764*sfactor);
    public int s765 = (int)Math.ceil(765*sfactor);
    public int s766 = (int)Math.ceil(766*sfactor);
    public int s767 = (int)Math.ceil(767*sfactor);
    public int s768 = (int)Math.ceil(768*sfactor);
    public int s769 = (int)Math.ceil(769*sfactor);
    public int s770 = (int)Math.ceil(770*sfactor);
    public int s771 = (int)Math.ceil(771*sfactor);
    public int s772 = (int)Math.ceil(772*sfactor);
    public int s773 = (int)Math.ceil(773*sfactor);
    public int s774 = (int)Math.ceil(774*sfactor);
    public int s775 = (int)Math.ceil(775*sfactor);
    public int s776 = (int)Math.ceil(776*sfactor);
    public int s777 = (int)Math.ceil(777*sfactor);
    public int s778 = (int)Math.ceil(778*sfactor);
    public int s779 = (int)Math.ceil(779*sfactor);
    public int s780 = (int)Math.ceil(780*sfactor);
    public int s781 = (int)Math.ceil(781*sfactor);
    public int s782 = (int)Math.ceil(782*sfactor);
    public int s783 = (int)Math.ceil(783*sfactor);
    public int s784 = (int)Math.ceil(784*sfactor);
    public int s785 = (int)Math.ceil(785*sfactor);
    public int s786 = (int)Math.ceil(786*sfactor);
    public int s787 = (int)Math.ceil(787*sfactor);
    public int s788 = (int)Math.ceil(788*sfactor);
    public int s789 = (int)Math.ceil(789*sfactor);
    public int s790 = (int)Math.ceil(790*sfactor);
    public int s791 = (int)Math.ceil(791*sfactor);
    public int s792 = (int)Math.ceil(792*sfactor);
    public int s793 = (int)Math.ceil(793*sfactor);
    public int s794 = (int)Math.ceil(794*sfactor);
    public int s795 = (int)Math.ceil(795*sfactor);
    public int s796 = (int)Math.ceil(796*sfactor);
    public int s797 = (int)Math.ceil(797*sfactor);
    public int s798 = (int)Math.ceil(798*sfactor);
    public int s799 = (int)Math.ceil(799*sfactor);
    
    public int s800 = (int)Math.ceil(800*sfactor);
    public int s801 = (int)Math.ceil(801*sfactor);
    public int s802 = (int)Math.ceil(802*sfactor);
    public int s803 = (int)Math.ceil(803*sfactor);
    public int s804 = (int)Math.ceil(804*sfactor);
    public int s805 = (int)Math.ceil(805*sfactor);
    public int s806 = (int)Math.ceil(806*sfactor);
    public int s807 = (int)Math.ceil(807*sfactor);
    public int s808 = (int)Math.ceil(808*sfactor);
    public int s809 = (int)Math.ceil(809*sfactor);
    public int s810 = (int)Math.ceil(810*sfactor);
    public int s811 = (int)Math.ceil(811*sfactor);
    public int s812 = (int)Math.ceil(812*sfactor);
    public int s813 = (int)Math.ceil(813*sfactor);
    public int s814 = (int)Math.ceil(814*sfactor);
    public int s815 = (int)Math.ceil(815*sfactor);
    public int s816 = (int)Math.ceil(816*sfactor);
    public int s817 = (int)Math.ceil(817*sfactor);
    public int s818 = (int)Math.ceil(818*sfactor);
    public int s819 = (int)Math.ceil(819*sfactor);
    public int s820 = (int)Math.ceil(820*sfactor);
    public int s821 = (int)Math.ceil(821*sfactor);
    public int s822 = (int)Math.ceil(822*sfactor);
    public int s823 = (int)Math.ceil(823*sfactor);
    public int s824 = (int)Math.ceil(824*sfactor);
    public int s825 = (int)Math.ceil(825*sfactor);
    public int s826 = (int)Math.ceil(826*sfactor);
    public int s827 = (int)Math.ceil(827*sfactor);
    public int s828 = (int)Math.ceil(828*sfactor);
    public int s829 = (int)Math.ceil(829*sfactor);
    public int s830 = (int)Math.ceil(830*sfactor);
    public int s831 = (int)Math.ceil(831*sfactor);
    public int s832 = (int)Math.ceil(832*sfactor);
    public int s833 = (int)Math.ceil(833*sfactor);
    public int s834 = (int)Math.ceil(834*sfactor);
    public int s835 = (int)Math.ceil(835*sfactor);
    public int s836 = (int)Math.ceil(836*sfactor);
    public int s837 = (int)Math.ceil(837*sfactor);
    public int s838 = (int)Math.ceil(838*sfactor);
    public int s839 = (int)Math.ceil(839*sfactor);
    public int s840 = (int)Math.ceil(840*sfactor);
    public int s841 = (int)Math.ceil(841*sfactor);
    public int s842 = (int)Math.ceil(842*sfactor);
    public int s843 = (int)Math.ceil(843*sfactor);
    public int s844 = (int)Math.ceil(844*sfactor);
    public int s845 = (int)Math.ceil(845*sfactor);
    public int s846 = (int)Math.ceil(846*sfactor);
    public int s847 = (int)Math.ceil(847*sfactor);
    public int s848 = (int)Math.ceil(848*sfactor);
    public int s849 = (int)Math.ceil(849*sfactor);
    public int s850 = (int)Math.ceil(850*sfactor);
    public int s851 = (int)Math.ceil(851*sfactor);
    public int s852 = (int)Math.ceil(852*sfactor);
    public int s853 = (int)Math.ceil(853*sfactor);
    public int s854 = (int)Math.ceil(854*sfactor);
    public int s855 = (int)Math.ceil(855*sfactor);
    public int s856 = (int)Math.ceil(856*sfactor);
    public int s857 = (int)Math.ceil(857*sfactor);
    public int s858 = (int)Math.ceil(858*sfactor);
    public int s859 = (int)Math.ceil(859*sfactor);
    public int s860 = (int)Math.ceil(860*sfactor);
    public int s861 = (int)Math.ceil(861*sfactor);
    public int s862 = (int)Math.ceil(862*sfactor);
    public int s863 = (int)Math.ceil(863*sfactor);
    public int s864 = (int)Math.ceil(864*sfactor);
    public int s865 = (int)Math.ceil(865*sfactor);
    public int s866 = (int)Math.ceil(866*sfactor);
    public int s867 = (int)Math.ceil(867*sfactor);
    public int s868 = (int)Math.ceil(868*sfactor);
    public int s869 = (int)Math.ceil(869*sfactor);
    public int s870 = (int)Math.ceil(870*sfactor);
    public int s871 = (int)Math.ceil(871*sfactor);
    public int s872 = (int)Math.ceil(872*sfactor);
    public int s873 = (int)Math.ceil(873*sfactor);
    public int s874 = (int)Math.ceil(874*sfactor);
    public int s875 = (int)Math.ceil(875*sfactor);
    public int s876 = (int)Math.ceil(876*sfactor);
    public int s877 = (int)Math.ceil(877*sfactor);
    public int s878 = (int)Math.ceil(878*sfactor);
    public int s879 = (int)Math.ceil(879*sfactor);
    public int s880 = (int)Math.ceil(880*sfactor);
    public int s881 = (int)Math.ceil(881*sfactor);
    public int s882 = (int)Math.ceil(882*sfactor);
    public int s883 = (int)Math.ceil(883*sfactor);
    public int s884 = (int)Math.ceil(884*sfactor);
    public int s885 = (int)Math.ceil(885*sfactor);
    public int s886 = (int)Math.ceil(886*sfactor);
    public int s887 = (int)Math.ceil(887*sfactor);
    public int s888 = (int)Math.ceil(888*sfactor);
    public int s889 = (int)Math.ceil(889*sfactor);
    public int s890 = (int)Math.ceil(890*sfactor);
    public int s891 = (int)Math.ceil(891*sfactor);
    public int s892 = (int)Math.ceil(892*sfactor);
    public int s893 = (int)Math.ceil(893*sfactor);
    public int s894 = (int)Math.ceil(894*sfactor);
    public int s895 = (int)Math.ceil(895*sfactor);
    public int s896 = (int)Math.ceil(896*sfactor);
    public int s897 = (int)Math.ceil(897*sfactor);
    public int s898 = (int)Math.ceil(898*sfactor);
    public int s899 = (int)Math.ceil(899*sfactor);
    
    public int s900 = (int)Math.ceil(900*sfactor);
    public int s901 = (int)Math.ceil(901*sfactor);
    public int s902 = (int)Math.ceil(902*sfactor);
    public int s903 = (int)Math.ceil(903*sfactor);
    public int s904 = (int)Math.ceil(904*sfactor);
    public int s905 = (int)Math.ceil(905*sfactor);
    public int s906 = (int)Math.ceil(906*sfactor);
    public int s907 = (int)Math.ceil(907*sfactor);
    public int s908 = (int)Math.ceil(908*sfactor);
    public int s909 = (int)Math.ceil(909*sfactor);
    public int s910 = (int)Math.ceil(910*sfactor);
    public int s911 = (int)Math.ceil(911*sfactor);
    public int s912 = (int)Math.ceil(912*sfactor);
    public int s913 = (int)Math.ceil(913*sfactor);
    public int s914 = (int)Math.ceil(914*sfactor);
    public int s915 = (int)Math.ceil(915*sfactor);
    public int s916 = (int)Math.ceil(916*sfactor);
    public int s917 = (int)Math.ceil(917*sfactor);
    public int s918 = (int)Math.ceil(918*sfactor);
    public int s919 = (int)Math.ceil(919*sfactor);
    public int s920 = (int)Math.ceil(920*sfactor);
    public int s921 = (int)Math.ceil(921*sfactor);
    public int s922 = (int)Math.ceil(922*sfactor);
    public int s923 = (int)Math.ceil(923*sfactor);
    public int s924 = (int)Math.ceil(924*sfactor);
    public int s925 = (int)Math.ceil(925*sfactor);
    public int s926 = (int)Math.ceil(926*sfactor);
    public int s927 = (int)Math.ceil(927*sfactor);
    public int s928 = (int)Math.ceil(928*sfactor);
    public int s929 = (int)Math.ceil(929*sfactor);
    public int s930 = (int)Math.ceil(930*sfactor);
    public int s931 = (int)Math.ceil(931*sfactor);
    public int s932 = (int)Math.ceil(932*sfactor);
    public int s933 = (int)Math.ceil(933*sfactor);
    public int s934 = (int)Math.ceil(934*sfactor);
    public int s935 = (int)Math.ceil(935*sfactor);
    public int s936 = (int)Math.ceil(936*sfactor);
    public int s937 = (int)Math.ceil(937*sfactor);
    public int s938 = (int)Math.ceil(938*sfactor);
    public int s939 = (int)Math.ceil(939*sfactor);
    public int s940 = (int)Math.ceil(940*sfactor);
    public int s941 = (int)Math.ceil(941*sfactor);
    public int s942 = (int)Math.ceil(942*sfactor);
    public int s943 = (int)Math.ceil(943*sfactor);
    public int s944 = (int)Math.ceil(944*sfactor);
    public int s945 = (int)Math.ceil(945*sfactor);
    public int s946 = (int)Math.ceil(946*sfactor);
    public int s947 = (int)Math.ceil(947*sfactor);
    public int s948 = (int)Math.ceil(948*sfactor);
    public int s949 = (int)Math.ceil(949*sfactor);
    public int s950 = (int)Math.ceil(950*sfactor);
    public int s951 = (int)Math.ceil(951*sfactor);
    public int s952 = (int)Math.ceil(952*sfactor);
    public int s953 = (int)Math.ceil(953*sfactor);
    public int s954 = (int)Math.ceil(954*sfactor);
    public int s955 = (int)Math.ceil(955*sfactor);
    public int s956 = (int)Math.ceil(956*sfactor);
    public int s957 = (int)Math.ceil(957*sfactor);
    public int s958 = (int)Math.ceil(958*sfactor);
    public int s959 = (int)Math.ceil(959*sfactor);
    public int s960 = (int)Math.ceil(960*sfactor);
    public int s961 = (int)Math.ceil(961*sfactor);
    public int s962 = (int)Math.ceil(962*sfactor);
    public int s963 = (int)Math.ceil(963*sfactor);
    public int s964 = (int)Math.ceil(964*sfactor);
    public int s965 = (int)Math.ceil(965*sfactor);
    public int s966 = (int)Math.ceil(966*sfactor);
    public int s967 = (int)Math.ceil(967*sfactor);
    public int s968 = (int)Math.ceil(968*sfactor);
    public int s969 = (int)Math.ceil(969*sfactor);
    public int s970 = (int)Math.ceil(970*sfactor);
    public int s971 = (int)Math.ceil(971*sfactor);
    public int s972 = (int)Math.ceil(972*sfactor);
    public int s973 = (int)Math.ceil(973*sfactor);
    public int s974 = (int)Math.ceil(974*sfactor);
    public int s975 = (int)Math.ceil(975*sfactor);
    public int s976 = (int)Math.ceil(976*sfactor);
    public int s977 = (int)Math.ceil(977*sfactor);
    public int s978 = (int)Math.ceil(978*sfactor);
    public int s979 = (int)Math.ceil(979*sfactor);
    public int s980 = (int)Math.ceil(980*sfactor);
    public int s981 = (int)Math.ceil(981*sfactor);
    public int s982 = (int)Math.ceil(982*sfactor);
    public int s983 = (int)Math.ceil(983*sfactor);
    public int s984 = (int)Math.ceil(984*sfactor);
    public int s985 = (int)Math.ceil(985*sfactor);
    public int s986 = (int)Math.ceil(986*sfactor);
    public int s987 = (int)Math.ceil(987*sfactor);
    public int s988 = (int)Math.ceil(988*sfactor);
    public int s989 = (int)Math.ceil(989*sfactor);
    public int s990 = (int)Math.ceil(990*sfactor);
    public int s991 = (int)Math.ceil(991*sfactor);
    public int s992 = (int)Math.ceil(992*sfactor);
    public int s993 = (int)Math.ceil(993*sfactor);
    public int s994 = (int)Math.ceil(994*sfactor);
    public int s995 = (int)Math.ceil(995*sfactor);
    public int s996 = (int)Math.ceil(996*sfactor);
    public int s997 = (int)Math.ceil(997*sfactor);
    public int s998 = (int)Math.ceil(998*sfactor);
    public int s999 = (int)Math.ceil(999*sfactor);
    
    public int s1000 = (int)Math.ceil(1000*sfactor);
    public int s1231 = (int)Math.ceil(1231*sfactor);
    public int s1237 = (int)Math.ceil(1237*sfactor);
    public int s100000 = (int)Math.ceil(100000*sfactor);

    //------------------------------------------------------------------------------ 
    // Look-up table for automatic adjustment of fonts
    //------------------------------------------------------------------------------
    public int font8 = (int)Math.floor(8*sfactor);
    public int font9 = (int)Math.floor(9*sfactor);
    public int font10 = (int)Math.floor(10*sfactor);
    public int font11 = (int)Math.floor(11*sfactor);
    public int font12 = (int)Math.floor(12*sfactor);
    public int font13 = (int)Math.floor(13*sfactor);
    public int font14 = (int)Math.floor(14*sfactor);
    public int font15 = (int)Math.floor(15*sfactor);
    public int font16 = (int)Math.floor(16*sfactor);
    public int font17 = (int)Math.floor(17*sfactor);
    public int font18 = (int)Math.floor(18*sfactor);
    public int font19 = (int)Math.floor(19*sfactor);
    public int font20 = (int)Math.floor(20*sfactor);
    public int font21 = (int)Math.floor(21*sfactor);
    public int font22 = (int)Math.floor(22*sfactor);
    public int font23 = (int)Math.floor(23*sfactor);
    public int font24 = (int)Math.floor(24*sfactor);
    public int font25 = (int)Math.floor(25*sfactor);
    public int font26 = (int)Math.floor(26*sfactor);
    public int font27 = (int)Math.floor(27*sfactor);
    public int font28 = (int)Math.floor(28*sfactor);
    public int font29 = (int)Math.floor(29*sfactor);
    public int font30 = (int)Math.floor(30*sfactor);
    public int font31 = (int)Math.floor(31*sfactor);
    public int font32 = (int)Math.floor(32*sfactor);
    public int font33 = (int)Math.floor(33*sfactor);
    public int font34 = (int)Math.floor(34*sfactor);
    public int font35 = (int)Math.floor(35*sfactor);
    public int font36 = (int)Math.floor(36*sfactor);
    public int font37 = (int)Math.floor(37*sfactor);
    public int font38 = (int)Math.floor(38*sfactor);
    public int font39 = (int)Math.floor(39*sfactor);
    public int font40 = (int)Math.floor(40*sfactor);
    
    private ArrayList<Component> displayed_panels;
    private static int MARGIN_ERROR = 20;
    private Component plotPanel1, plotPanel2;    
    
    public static void main(String[] args){
        DetailedAntenna f = new DetailedAntenna();
        
        // Determine if Windows or Mac OS
        String lcOSName = System.getProperty("os.name").toLowerCase();
        boolean HAVE_MAC_OS_X = lcOSName.startsWith("mac os x");
        boolean HAVE_WINDOWS = lcOSName.startsWith("windows");
        boolean OS_Windows;
        
        if(HAVE_WINDOWS){
            OS_Windows = true;
        }
        else{
            OS_Windows = false;
        }
        
        // Frame of Application window has thickness with a fixed number 
        // of pixels along x and y, which require a shift. 
        int xfixed = 0;
        int yfixed = 0;
        
        if(OS_Windows){ //Windows opearting system
            xfixed = 8;
            yfixed = 31;
        }
        else{ //MAC Operating System
            xfixed = 8;
            yfixed = 31;
        }
        f.setSize((int)(sfactorm*(base_width + xmove_main +4))+xfixed,
                  (int)(sfactorm*(base_height + ymove_main +4))+yfixed);
        
        //f.setSize((int)(sfactorm*(base_width) + sfactorm*(xmove_main)),(int)(sfactorm*(base_height)+sfactorm*(ymove_main)));
        
        f.setVisible(true);
        f.setLayout(null);
    }
    
    public DetailedAntenna() {
	super();
    	setLayout(null);

	displayed_panels = new ArrayList<Component>();
	
        String lcOSName = System.getProperty("os.name").toLowerCase();
        boolean MAC_OS_X = lcOSName.startsWith("mac os x");
        //System.out.println(lcOSName);
        
        boolean HAVE_WINDOWS = lcOSName.startsWith("windows");
        boolean OS_Windows;
        
        if(HAVE_WINDOWS){
            OS_Windows = true;
        }
        else{
            OS_Windows = false;
        }
        
        // Frame of Application window has thickness with a fixed number 
        // of plain pixels along x and y, which require a shift. 
        int xfixed = 0;
        int yfixed = 0;
        
        if(OS_Windows){ //Windows opearting system
            xfixed = 8;
            yfixed = 31;
        }
        else{ //MAC Operating System
            xfixed = 8;
            yfixed = 31;
        }
        
        xmove = xfixed + (int)(0.5 * sfactorm*(xmove_main));
        ymove = yfixed + (int)(0.5 * sfactorm*(ymove_main));
        
        
        setLayout(null);
        
        boolean PC_OS = lcOSName.startsWith("windows");
        TheFonts.setMAC_OS_X(MAC_OS_X);
        TheFonts.setPC_OS(PC_OS);
	
        state = new NewGuide_State();
	
        titlepanel = new TitlePanel("Module 9.3","Detailed Analysis of Linear Antenna",state);
	//add(titlepanel);
	titlepanel.setBounds(s10+xmove,s9+ymove,s300,s40);
        
        instructions = new Instructions(state);
        instructions.setBounds(s11+xmove,s200+s61+ymove,s600+s4,s200+s98);
        //instructions.setVisible(false);
        
        instrFrame = new Panel();
        instrFrame.setBackground(Color.black);
        instrFrame.setBounds(s11+xmove-1,s200+s61+ymove-1,s600+s4+2,s200+s98+2);
        //instrFrame.setVisible(false);
        
	rwc = new NewGuideCanvas(state);
	//add(rwc);
	rwc.setBounds(s12+xmove,s56+ymove,s200+s97,s198);
	rwc.setVisible(true);
	
	rwc2 = new NewGuideCanvas2(state);
	//add(rwc2);
	rwc2.setBounds(s300+s17+xmove,s56+ymove,s200+s97,s198);
	rwc2.setVisible(false);
        
	inputpanel = new NewGuideInputPanel(state);
	//add(inputpanel);
	inputpanel.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	inputpanel.setVisible(true);
	
	inputpanel2 = new NewGuideInputPanel2(state);
	//add(inputpanel2);
	inputpanel2.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	inputpanel2.setVisible(false);
	
	rwccq = new NewGuideGraphCanvasQ(state);
	//add(rwccq);
	rwccq.setVisible(false);
        // CHANGE ==============================================================
	rwccq.setBounds(s10+xmove,s200+s60+ymove,s600+s5,s300);
        //======================================================================
	
	outputpanel = new NewGuideOutputPanel(state);
	//add(outputpanel);
	outputpanel.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel.setVisible(true);
	
	outputpanel2 = new NewGuideOutputPanel2(state);
	//add(outputpanel2);
	outputpanel2.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel2.setVisible(false);
	
	outputpanel3 = new NewGuideOutputPanel3(state);
	//add(outputpanel3);
	outputpanel3.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel3.setVisible(false);
	
	outputpanel4 = new NewGuideOutputPanel4(state);
	//add(outputpanel4);
	outputpanel4.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel4.setVisible(false);
	
	outputpanel5 = new NewGuideOutputPanel5(state);
	//add(outputpanel5);
	outputpanel5.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel5.setVisible(false);
	
	outputpanel6 = new NewGuideOutputPanel6(state);
	//add(outputpanel6);
	outputpanel6.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel6.setVisible(false);
	
	outputpanel7 = new NewGuideOutputPanel7(state);
	//add(outputpanel7);
	outputpanel7.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel7.setVisible(false);
	
	outputpanel8 = new NewGuideOutputPanel8(state);
	//add(outputpanel8);
	outputpanel8.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel8.setVisible(false);
	
	outputpanel9 = new NewGuideOutputPanel9(state);
	//add(outputpanel9);
	outputpanel9.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel9.setVisible(false);
	
	outputpanel10 = new NewGuideOutputPanel10(state);
	//add(outputpanel10);
	outputpanel10.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel10.setVisible(false);
	
	outputpanel11 = new NewGuideOutputPanel11(state);
	//add(outputpanel11);
	outputpanel11.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel11.setVisible(false);
	
	outputpanel12 = new NewGuideOutputPanel12(state);
	//add(outputpanel12);
	outputpanel12.setBounds(s300+s17+xmove+s100000,s56+ymove,s200+s96,s196);
	outputpanel12.setVisible(false);
	
	outputpanel13 = new NewGuideOutputPanel13(state);
	//add(outputpanel13);
	outputpanel13.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel13.setVisible(false);
	
	outputpanel14 = new NewGuideOutputPanel14(state);
	//add(outputpanel14);
	outputpanel14.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel14.setVisible(false);	
	
	outputpanel15 = new NewGuideOutputPanel15(state);
	//add(outputpanel15);
	outputpanel15.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel15.setVisible(false);
	
	outputpanel16 = new NewGuideOutputPanel16(state);
	//add(outputpanel16);
	outputpanel16.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel16.setVisible(false);
	
	outputpanel17 = new NewGuideOutputPanel17(state);
	//add(outputpanel17);
	outputpanel17.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel17.setVisible(false);
	
	outputpanel18 = new NewGuideOutputPanel18(state);
	//add(outputpanel18);
	outputpanel18.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	outputpanel18.setVisible(false);
	
	frequency_panel = new SetRangePanel("Frequency"," [ Hz ]",state);
	//add(frequency_panel);
	frequency_panel.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	frequency_panel.setVisible(false);
	frequency_panel.setMinimum(state.frequency_minimum);
	frequency_panel.setMaximum(state.frequency_maximum);
	frequency_panel.setBackg(new Color(236,236,221));
	
	a_panel = new SetRangePanel("Antenna Length L "," [ \u03bb ]",state);
	//add(a_panel);
	a_panel.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	a_panel.setVisible(false);
	a_panel.setMinimum(state.a_minimum);
	a_panel.setMaximum(state.a_maximum);
	a_panel.setBackg(new Color(236,236,221));
	
	current_panel = new SetRangePanel("Maximum Current I "," [ A ]",state);
	//add(current_panel);
	current_panel.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	current_panel.setVisible(false);
	current_panel.setMinimum(state.currentin_minimum);
	current_panel.setMaximum(state.currentin_maximum);
	current_panel.setBackg(new Color(236,236,221));
	
	distance_panel = new SetRangePanel("Radial Distance r ","",state);
	//add(distance_panel);
	distance_panel.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	distance_panel.setVisible(false);
	distance_panel.setMinimum(state.distance_minimum);
	distance_panel.setMaximum(state.distance_maximum);
	distance_panel.setBackg(new Color(236,236,221));
		
	rwconp = new NewGuideControlPanel(state);
	//add(rwconp);
	rwconp.setBounds(s300+s17+xmove,s12+ymove,s200+s96,s36);
	
	cp3D = new ControlPanel3D(state);
	//add(cp3D);
	cp3D.setVisible(false);
	cp3D.setBounds(s300+s17+xmove,s56+ymove,s200+s96,s198);
	
	rwcca = new NewGuideGraphCanvasDir(state);
	//add(rwcca);
	rwcca.setVisible(true);
	rwcca.setBounds(s300+s17+xmove,s56+ymove,s200+s96,s198);
	
	rwccb = new NewGuideGraphCanvasRadRes(state);
	//add(rwccb);
	rwccb.setVisible(false);
	rwccb.setBounds(s300+s17+xmove,s56+ymove,s200+s96,s198);
	
	rwccb2 = new NewGuideGraphCanvasRadReac(state);
	//add(rwccb2);
	rwccb2.setVisible(false);
	rwccb2.setBounds(s300+s17+xmove,s56+ymove,s200+s96,s198);
	
	rwccd = new NewGuideGraphCanvasInRes(state);
	//add(rwccd);
	rwccd.setVisible(false);
	rwccd.setBounds(s300+s17+xmove,s56+ymove,s200+s96,s198);
	
	rwccd2 = new NewGuideGraphCanvasInReac(state);
	//add(rwccd2);
	rwccd2.setVisible(false);
	rwccd2.setBounds(s300+s17+xmove,s56+ymove,s200+s96,s198);
		
	rwccf = new NewGuideGraphCanvasF(state);
	//add(rwccf);
	rwccf.setVisible(false);
	rwccf.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccg = new NewGuideGraphCanvasG(state);
	//add(rwccg);
	rwccg.setVisible(false);
	rwccg.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwcch = new NewGuideGraphCanvasH(state);
	//add(rwcch);
	rwcch.setVisible(false);
	rwcch.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccj = new NewGuideGraphCanvasJ(state);
	//add(rwccj);
	rwccj.setVisible(false);
	rwccj.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwcck = new NewGuideGraphCanvasK(state);
	//add(rwcck);
	rwcck.setVisible(false);
	rwcck.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccl = new NewGuideGraphCanvasL(state);
	//add(rwccl);
	rwccl.setVisible(false);
	rwccl.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccm = new NewGuideGraphCanvasM(state);
	//add(rwccm);
	rwccm.setVisible(false);
	rwccm.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccn = new NewGuideGraphCanvasN(state);
	//add(rwccn);
	rwccn.setVisible(false);
	rwccn.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwcco = new NewGuideGraphCanvasO(state);
	//add(rwcco);
	rwcco.setVisible(false);
	rwcco.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccp = new NewGuideGraphCanvasP(state);
	//add(rwccp);
	rwccp.setVisible(false);
	rwccp.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccr = new NewGuideGraphCanvasR(state);
	//add(rwccr);
	rwccr.setVisible(false);
	rwccr.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccs = new NewGuideGraphCanvasS(state);
	//add(rwccs);
	rwccs.setVisible(false);
	rwccs.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwcct = new NewGuideGraphCanvasT(state);
	//add(rwcct);
	rwcct.setVisible(false);
	rwcct.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccu = new NewGuideGraphCanvasU(state);
	//add(rwccu);
	rwccu.setVisible(false);
	rwccu.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccv = new NewGuideGraphCanvasV(state);
	//add(rwccv);
	rwccv.setVisible(false);
	rwccv.setBounds(s12+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
	rwccw = new NewGuideGraphCanvasW(state);
	//add(rwccw);
	rwccw.setVisible(false);
	rwccw.setBounds(s300+s17+xmove,s200+s62+ymove,s200+s96,s200+s96);
	
        //   Drawing Canvas Top LEFT below Title panel
	Panel p01 = new Panel();
	p01.setBackground(Color.white);
	//add(p01);
	//p01.setBounds(s12+xmove-1,s57+ymove-1,s200+s96+2,s100+s96+2);
	p01.setBounds(s12+xmove-1,s56+ymove-1,s200+s97+2,s100+s98+2);
            
	Panel p1 = new Panel();
	p1.setBackground(Color.black);
	//add(p1);
	//p1.setBounds(s12+xmove-1,s57+ymove-1,s200+s98+2,s100+s96+2);
	p1.setBounds(s12+xmove-2,s56+ymove-2,s200+s97+4,s100+s98+4);
	//======================================================================    
	//backpanels for output panel
	Panel p20 = new Panel();
	p20.setBackground(Color.white);
	//add(p20);
	p20.setBounds(s300+s17+xmove-1,s200+s62+ymove-1,s200+s96+2,s200+s96+2);
    
	Panel p2 = new Panel();
	p2.setBackground(Color.black);
	//add(p2);
	p2.setBounds(s300+s17+xmove-2,s200+s62+ymove-2,s200+s96+4,s200+s96+4);
            
        //======================================================================
	//backpanels for control panel
	Panel p40 = new Panel();
	p40.setBackground(Color.white);
	//add(p40);
	p40.setBounds(s300+s17+xmove-1,s12+ymove-1,s200+s96+2,s36+2);
    
	Panel p4 = new Panel();
	p4.setBackground(Color.black);
	//add(p4);
	p4.setBounds(s300+s17+xmove-2,s12+ymove-2,s200+s96+4,s36+4);
	
	//backpanels for inputpanel        
	Panel p50 = new Panel();
	p50.setBackground(Color.white);
	//add(p50);
	//p50.setBounds(s12+xmove-1,s200+s62+ymove-1,s200+s96+2,s200+s96+2);
	p50.setBounds(s12+xmove-1,s200+s62+ymove-1,s200+s96+2,s200+s96+2);
	Panel p5 = new Panel();
	p5.setBackground(Color.black);
	//add(p5);
	//p5.setBounds(s12+xmove-2,s200+s62+ymove-1,s200+s96+4,s200+s96+4);
	p5.setBounds(s12+xmove-2,s200+s62+ymove-2,s200+s96+4,s200+s96+4);
            
	//backpanel for cp3D  
	Panel p60 = new Panel();
	p60.setBackground(Color.white);
	//add(p60);
	p60.setBounds(s300+s17+xmove-1,s56+ymove-1,s200+s96+2,s198+2);
	Panel p6 = new Panel();
	p6.setBackground(Color.black);
	//add(p6);
	p6.setBounds(s300+s17+xmove-2,s56+ymove-2,s200+s96+4,s198+4);
	//======================================================================    
	//backpanels for applet
	
        Panel p0 = new Panel();
	p0.setBackground(Color.cyan);
	//add(p0);
	p0.setBounds(3+xmove,3+ymove,(int)Math.ceil(sfactor*(base_width))-6,(int)Math.ceil(sfactor*(base_height))-6);
	    
	Panel p00 = new Panel();
	p00.setBackground(Color.black);
	//add(p00);
	p00.setBounds(xmove,ymove,(int)Math.ceil(sfactor*(base_width)),(int)Math.ceil(sfactor*(base_height)));
        
        
        //Panel p0 = new Panel();
	//    p0.setBackground(Color.cyan);
	//    //add(p0);
	//    p0.setBounds(xmove+3,ymove+3,(int)(base_width*sfactor)-6,(int)(base_height*sfactor)-6);
	    
	//Panel p00 = new Panel();
	//    p00.setBackground(Color.black);
	//    //add(p00);
	//    p00.setBounds(xmove,ymove,(int)(base_width*sfactor),(int)(base_height*sfactor));

	/* WON'T WORK in Cheerpj conversion
	   Panel p000 = new Panel();
	   p000.setBackground(Color.white);
	   //add(p00);
	   p000.setBounds(0,0,s100000,s100000);
	*/

        //======================================================================
    
	//if(state.this_year > line.magicyear || (state.this_year == line.magicyear && state.this_month > line.magicmonth)){
	//    state.LicenseExpired = true;
	//}
	//else
	//{ 	    
            
	add(instructions,0);
	add(instrFrame,1);
	//add(titlepanel);
	    
	cheerpj_add(rwc);
	cheerpj_add(rwc2);
	cheerpj_add(inputpanel);
	cheerpj_add(inputpanel2);

	cheerpj_add(rwcca);  //up here now (higher priority)
	
	cheerpj_add(rwccq);
	cheerpj_add(outputpanel);
	cheerpj_add(outputpanel2);
	cheerpj_add(outputpanel3);
	cheerpj_add(outputpanel4);
	cheerpj_add(outputpanel5);
	cheerpj_add(outputpanel6);
	cheerpj_add(outputpanel7);
	cheerpj_add(outputpanel8);
	cheerpj_add(outputpanel9);
	cheerpj_add(outputpanel10);
	cheerpj_add(outputpanel11);
	cheerpj_add(outputpanel12);
	cheerpj_add(outputpanel13);
	cheerpj_add(outputpanel14);
	cheerpj_add(outputpanel15);
	cheerpj_add(outputpanel16);
	cheerpj_add(outputpanel17);
	cheerpj_add(outputpanel18);
	cheerpj_add(frequency_panel);
	cheerpj_add(a_panel);
	cheerpj_add(current_panel);
	cheerpj_add(distance_panel);
	cheerpj_add(rwconp);
	cheerpj_add(cp3D);
	//cheerpj_add(rwcca);
	cheerpj_add(rwccb);
	cheerpj_add(rwccb2);
	cheerpj_add(rwccd);
	cheerpj_add(rwccd2);
	cheerpj_add(rwccf);
	cheerpj_add(rwccg);
	cheerpj_add(rwcch);
	cheerpj_add(rwccj);
	cheerpj_add(rwcck);
	cheerpj_add(rwccl);
	cheerpj_add(rwccm);
	cheerpj_add(rwccn);
	cheerpj_add(rwcco);
	cheerpj_add(rwccp);
	cheerpj_add(rwccr);
	cheerpj_add(rwccs);
	cheerpj_add(rwcct);
	cheerpj_add(rwccu);
	cheerpj_add(rwccv);
	cheerpj_add(rwccw);

	add(titlepanel,7);
	    
	add(p01,8);
	add(p1,9);
	add(p20,10);
	add(p2,11);
	add(p40,12);
	add(p4,13);
	add(p50,14);
	add(p5,15);
	add(p60,16);
	add(p6,17);
	add(p0,18);
	add(p00,19);
	//add(p000);
	    
	state.LicenseExpired = false; 	
	//}

	//Listeners
        //this.addWindowListener(this);
        instructions.bupdate.addActionListener(this);
	
        rwconp.ch1.addItemListener(this);
	rwconp.ch2.addItemListener(this);

	/*
	  cp3D.ch1.addItemListener(this);
	  cp3D.ch2.addItemListener(this);
	  cp3D.ch3.addItemListener(this);
	  cp3D.cg1.addItemListener(this);
	  cp3D.cg2.addItemListener(this);
	  cp3D.cg3.addItemListener(this);
	  cp3D.cg4.addItemListener(this);
	  cp3D.cg5.addItemListener(this);
	  cp3D.cplot1.addItemListener(this);
	  cp3D.cplot2.addItemListener(this);
	  cp3D.cplot3.addItemListener(this);
	*/
	cp3D.slider1.addChangeListener(this);
	cp3D.bupdate.addActionListener(this);
        
        cp3D.bSpher1.addActionListener(this);
        cp3D.bSpher1.addActionListener(this);
        cp3D.bSpher2.addActionListener(this);
        cp3D.bSpher3.addActionListener(this);
        cp3D.bCart1.addActionListener(this);
        cp3D.bCart2.addActionListener(this);
        cp3D.bCart3.addActionListener(this);
        cp3D.bCart4.addActionListener(this);
        cp3D.bCart5.addActionListener(this);
        
        cp3D.bplot1.addActionListener(this);
        cp3D.bplot2.addActionListener(this);
        cp3D.bplot3.addActionListener(this);
	
	inputpanel.ch2.addItemListener(this);
	inputpanel.b1.addActionListener(this);
	inputpanel.b2.addActionListener(this);
	inputpanel.b3.addActionListener(this);
	/*
	inputpanel.b2a.addActionListener(this);
	inputpanel.b2b.addActionListener(this);
	inputpanel.b3a.addActionListener(this);
        inputpanel.b3b.addActionListener(this);
        inputpanel.b4a.addActionListener(this);
        inputpanel.b4b.addActionListener(this);
        
        inputpanel2.b2a.addActionListener(this);
        inputpanel2.b2b.addActionListener(this);
        inputpanel2.b3a.addActionListener(this);
        inputpanel2.b3b.addActionListener(this);
        inputpanel2.b4a.addActionListener(this);
        inputpanel2.b4b.addActionListener(this);
        inputpanel2.b5a.addActionListener(this);
        inputpanel2.b5b.addActionListener(this);
        inputpanel2.b6a.addActionListener(this);
        inputpanel2.b6b.addActionListener(this);
	*/
        
        inputpanel2.b2.addActionListener(this);
	
	inputpanel.slider1.addChangeListener(this);
	inputpanel.slider2.addChangeListener(this);
	inputpanel.slider3.addChangeListener(this);
	inputpanel2.slider1.addChangeListener(this);
	inputpanel2.slider2.addChangeListener(this);
	inputpanel2.slider3.addChangeListener(this);
	inputpanel2.slider10.addChangeListener(this);
	inputpanel2.slider30.addChangeListener(this);
	
	inputpanel.bupdate.addActionListener(this);
	inputpanel2.bupdate.addActionListener(this);
	
	a_panel.b1.addActionListener(this);
	frequency_panel.b1.addActionListener(this);
	current_panel.b1.addActionListener(this);
	distance_panel.b1.addActionListener(this);
	
	state.ignition();
	rwccq.repaint();
    }


    
    public void cheerpj_add(Component p)
    {
	if (p.isVisible()) {
	    try {
		add(p,2+displayed_panels.size());
		displayed_panels.add(p);
		
	    } catch (Exception e){
		System.out.println(p.toString());
		System.out.println("************");
		System.out.println(e.toString());
	    }
	}
    }


    private boolean overlaps(Rectangle r_c1, Rectangle r_c2) {
	Rectangle r1, r2;

	if (r_c1.width > r_c2.width) {
	    r1 = r_c1;
	    r2 = r_c2;
	} else {
	    r1 = r_c2;
	    r2 = r_c1;
	}

	int x0,y0,x1,y1;
	int cx0, cy0, cx1, cy1;

	x0 = r1.x;
	y0 = r1.y;
	x1 = r1.x + r1.width;
	y1 = r1.y + r1.height;

	cx0 = r2.x;
	cy0 = r2.y;
	cx1 = r2.x + r2.width;
	cy1 = r2.y + r2.height;
	

	// Does c2 overlap c1?
	if (cx0 >= x0 && cx0 <= x1) {
	    if (cy0 >= y0 && cy0 <= y1) {
		return true;
	    } else if (cy1 >= y0 && cy1 <= y1) {
		return true;
	    }	       
	} else if (cx1 >= x0 && cx1 <= x1) {
	    if (cy0 >= y0 && cy0 <= y1) {
		return true;
	    } else if (cy1 >= y0 && cy1 <= y1) {
		return true;
	    }	       
	}
	return false;
    }
    


    
    private void setPanelVisible(Component p) {	
	p.setVisible(true);
	if (!isAncestorOf(p)) {
	    Rectangle p_bounds = p.getBounds();
	    Rectangle c_bounds = p_bounds;
	    int zorder = 5;
	    int sv_idx = 0;
	    for (int i = 0; i < displayed_panels.size(); i++) {
		Component c = displayed_panels.get(i);
		c_bounds = c.getBounds();
		if (overlaps(p_bounds,c_bounds)) {
		    zorder = getComponentZOrder(c);
		    c.setVisible(false);
		    remove(c);
		    displayed_panels.remove(i);
		    sv_idx = i;
		    break;
		}
	    }
	    // For special panels which overlap 2 normal sized panels:
	    if (p_bounds.width > (c_bounds.width + MARGIN_ERROR)  ||
		p_bounds.height > (c_bounds.height  + MARGIN_ERROR)) {
		for (int i = sv_idx; i < displayed_panels.size(); i++) {
		    Component c = displayed_panels.get(i);
		    c_bounds = c.getBounds();
		    if (overlaps(p_bounds,c_bounds)) {
			c.setVisible(false);
			remove(c);
			displayed_panels.remove(i);
			break;
		    }
		}
	    }
		    	    
	    add(p,zorder);
	    displayed_panels.add(p);

	    // MAY NOT NEED ALL OF THESE ?!?!? TEST LATER
	    p.validate();
	    p.repaint();
	    validate();
	    repaint();
	}
    }


    
    public void paint(Graphics g){
    
	Font licensefont = new Font("SanSerif",Font.BOLD,18); 
	Font fonto = new Font("SanSerif",Font.PLAIN,12);
	Font fontc = new Font("SanSerif",Font.BOLD,16);
    
	Graphics2D g2d = (Graphics2D)g;
    }
    
    
    public void stateChanged(ChangeEvent evt){
	
	
	if(evt.getSource()==inputpanel.slider1 || evt.getSource()==inputpanel.slider2 || evt.getSource()==inputpanel.slider3){
	    state.need_update = true;
            
            state.ignition();
	    //state.scan_coefficients();
	    state.scanCurrent();
	    
	    rwccq.setYRangeMax(state.currentMAX);
	    rwccq.setYRangeMin(-state.currentMAX);
	    //rwccq.setYRangeMin(0.0);
	    rwccq.plotZeroLine(true);
	    rwccq.plotRefPoint(false);
		    
	    if(state.currentMAX >= 1.0){
		rwccq.setLabels("Current Distribution"," [ A ]","z");
		state.currentNormalization = 1.0;
	    }
	    else if(state.currentMAX >= 1.0e-3 && state.currentMAX < 1.0){
		rwccq.setLabels("Current Distribution"," [ mA ]","z");
		state.currentNormalization = 1.0e3;
	    }
	    else if(state.currentMAX >= 1.0e-6 && state.currentMAX < 1.0e-3){
		rwccq.setLabels("Current Distribution"," [ \u00b5A ]","z");
		state.currentNormalization = 1.0e6;
	    }
	    else if(state.currentMAX >= 1.0e-9 && state.currentMAX < 1.0e-6){
		rwccq.setLabels("Current Distribution"," [ nA ]","z");
		state.currentNormalization = 1.0e9;
	    }
	    else if(state.currentMAX >= 1.0e-12 && state.currentMAX < 1.0e-9){
		rwccq.setLabels("Current Distribution"," [ pA ]","z");
		state.currentNormalization = 1.0e12;
	    }
	    else if(state.currentMAX < 1.0e-12){
		rwccq.setLabels("Current Distribution"," [ fA ]","z");
		state.currentNormalization = 1.0e15;
	    }
	    rwccq.plot(state.zposLarge,state.currentMLarge,state.currentNormalization,state.currentMIN,state.currentin);
	    
	    rwccq.ignition();
	    rwccq.repaint();
	    
	    rwcca.setYRangeMax(state.DVMax);
	    rwcca.setYRangeMin(0.0);
	    rwcca.plotZeroLine(false);
	    rwcca.plotRefPoint(true);
	    rwcca.setLabels("Directivity","","Dipole Length","");
	    rwcca.setRefPoint(state.a);
	    rwcca.plot(state.leng,state.DVector, state.IsDirectivity);
	    rwcca.ignition();
	    rwcca.repaint();
		    
	    rwccb.setYRangeMax(state.RVMax);
	    rwccb.setYRangeMin(0.0);
	    rwccb.plotZeroLine(false);
	    rwccb.plotRefPoint(true);
	    rwccb.setLabels("Radiation Resistance","","Dipole Length","");
	    rwccb.setRefPoint(state.a);
	    rwccb.plot(state.leng,state.RVector, state.IsDirectivity);
	    rwccb.ignition();
	    rwccb.repaint();
	    
	    rwccb2.setYRangeMax(state.XVMax);
	    rwccb2.setYRangeMin(state.XVMin);
	    rwccb2.plotZeroLine(true);
	    rwccb2.plotRefPoint(true);
	    rwccb2.setLabels("Self Reactance","","Dipole Length","");
	    rwccb2.setRefPoint(state.a);
	    rwccb2.plot(state.leng,state.XVector, state.IsDirectivity);
	    rwccb2.ignition();
	    rwccb2.repaint();
	    
	    rwccd.setYRangeMax(state.RinVMax);
	    rwccd.setYRangeMin(0.0);
	    rwccd.plotZeroLine(false);
	    rwccd.plotRefPoint(true);
	    rwccd.setLabels("Input Resistance","","Dipole Length","");
	    rwccd.setRefPoint(state.a);
	    rwccd.plot(state.leng,state.RinVector, state.RVector, state.IsDirectivity);
	    rwccd.ignition();
	    rwccd.repaint();
	    
	    rwccd2.setYRangeMax(state.XinVMax);
	    rwccd2.setYRangeMin(state.XinVMin);
	    rwccd2.plotZeroLine(true);
	    rwccd2.plotRefPoint(true);
	    rwccd2.setLabels("Input Reactance","","Dipole Length","");
	    rwccd2.setRefPoint(state.a);
	    rwccd2.plot(state.leng,state.XinVector, state.XVector, state.IsDirectivity);
	    rwccd2.ignition();
	    rwccd2.repaint();
	    
	    rwc.setFrequency(state.frequency);
	    rwc.setEpsilon(state.epsilon_r);
	    rwc.setAntennaLength(state.DipoleLength_lambda);
	    rwc.setAntennaRadius(state.wire_radius);
	    
	    rwc2.setFrequency(state.frequency);
	    rwc2.setEpsilon(state.epsilon_r);
	    rwc2.setWavelength(state.wavelength);
	    rwc2.setTheta(state.theta_angle);
	    rwc2.setPhi(state.phi_angle);
	    rwc2.setDistance(state.point_distance);
	    
	    rwc.repaint();
	    rwc2.repaint();
	    
	    outputpanel.rwocA.repaint();
	    outputpanel.rwocB.repaint();
	    outputpanel.rwocField.repaint();
	    outputpanel12.rwocW.repaint();
	    //outputpanel12.rwocZ.repaint();
    	}
	
	else if(evt.getSource()==inputpanel2.slider1 || evt.getSource()==inputpanel2.slider2 || evt.getSource()==inputpanel2.slider3 || evt.getSource()==inputpanel2.slider10 || evt.getSource()==inputpanel2.slider30){
	    state.ignition();
            state.need_update = true;
	    //state.scan_coefficients();
	    state.scanCurrent();
	    inputpanel2.repaint();
            
	    cp3D.slider1.setValue((int)(state.phi_angle));
	    cp3D.repaint();
	    
	    rwccq.setYRangeMax(state.currentMAX);
	    rwccq.setYRangeMin(-state.currentMAX);
	    //rwccq.setYRangeMin(0.0);
	    rwccq.plotZeroLine(true);
	    rwccq.plotRefPoint(false);
		    
	    if(state.currentMAX >= 1.0){
		rwccq.setLabels("Current Distribution"," [ A ]","z");
		state.currentNormalization = 1.0;
	    }
	    else if(state.currentMAX >= 1.0e-3 && state.currentMAX < 1.0){
		rwccq.setLabels("Current Distribution"," [ mA ]","z");
		state.currentNormalization = 1.0e3;
	    }
	    else if(state.currentMAX >= 1.0e-6 && state.currentMAX < 1.0e-3){
		rwccq.setLabels("Current Distribution"," [ \u00b5A ]","z");
		state.currentNormalization = 1.0e6;
	    }
	    else if(state.currentMAX >= 1.0e-9 && state.currentMAX < 1.0e-6){
		rwccq.setLabels("Current Distribution"," [ nA ]","z");
		state.currentNormalization = 1.0e9;
	    }
	    else if(state.currentMAX >= 1.0e-12 && state.currentMAX < 1.0e-9){
		rwccq.setLabels("Current Distribution"," [ pA ]","z");
		state.currentNormalization = 1.0e12;
	    }
	    else if(state.currentMAX < 1.0e-12){
		rwccq.setLabels("Current Distribution"," [ fA ]","z");
		state.currentNormalization = 1.0e15;
	    }
	    rwccq.plot(state.zposLarge,state.currentMLarge,state.currentNormalization,state.currentMIN,state.currentin);
	    
	    rwccq.ignition();
	    rwccq.repaint();
	    
	    rwc.setFrequency(state.frequency);
	    rwc.setEpsilon(state.epsilon_r);
	    rwc.setAntennaLength(state.DipoleLength_lambda);
	    rwc.setAntennaRadius(state.wire_radius);
	    
	    rwc2.setFrequency(state.frequency);
	    rwc2.setEpsilon(state.epsilon_r);
	    rwc2.setWavelength(state.wavelength);
	    rwc2.setTheta(state.theta_angle);
	    rwc2.setPhi(state.phi_angle);
	    rwc2.setDistance(state.point_distance);
	    
	    rwc.repaint();
	    rwc2.repaint();
	    
	    outputpanel.rwocA.repaint();
	    outputpanel.rwocB.repaint();
	    outputpanel.rwocField.repaint();
	    outputpanel12.rwocW.repaint();
	    //outputpanel12.rwocZ.repaint();
	    
	    cp3D.text3.setText(""+state.point_distance);
	    cp3D.repaint();
    	}
	
	if(evt.getSource()==cp3D.slider1){
	    
	    state.ignition();
	    state.ignition();
	    
	    rwccf.ignition();
	    rwccf.repaint();
	    rwccg.ignition();
	    rwccg.repaint();
	    rwcch.ignition();
	    rwcch.repaint();
	    rwccj.ignition();
	    rwccj.repaint();
	    rwcck.ignition();
	    rwcck.repaint();
	    rwccl.ignition();
	    rwccl.repaint();
	    rwccm.ignition();
	    rwccm.repaint();
	    rwccn.ignition();
	    rwccn.repaint();
	    rwcco.ignition();
	    rwcco.repaint();
	    rwccp.ignition();
	    rwccp.repaint();
	    rwccr.ignition();
	    rwccr.repaint();
	    rwccs.ignition();
	    rwccs.repaint();
		    
	    cp3D.repaint();
	}
    } // END FUNCTION: adjustmentValueChanged

    
    	
    
    public void actionPerformed(ActionEvent evt){
        /*
        if(evt.getSource()==inputpanel.b2a || evt.getSource()==inputpanel.b2b ||
           evt.getSource()==inputpanel.b3a || evt.getSource()==inputpanel.b3b ||
           evt.getSource()==inputpanel.b4a || evt.getSource()==inputpanel.b4b  )
	    {
		state.ignition();
		//state.scan_coefficients();
		state.scanCurrent();
	    
		rwccq.setYRangeMax(state.currentMAX);
		rwccq.setYRangeMin(-state.currentMAX);
		//rwccq.setYRangeMin(0.0);
		rwccq.plotZeroLine(true);
		rwccq.plotRefPoint(false);
		    
		if(state.currentMAX >= 1.0){
		    rwccq.setLabels("Current Distribution"," [ A ]","z");
		    state.currentNormalization = 1.0;
		}
		else if(state.currentMAX >= 1.0e-3 && state.currentMAX < 1.0){
		    rwccq.setLabels("Current Distribution"," [ mA ]","z");
		    state.currentNormalization = 1.0e3;
		}
		else if(state.currentMAX >= 1.0e-6 && state.currentMAX < 1.0e-3){
		    rwccq.setLabels("Current Distribution"," [ \u00b5A ]","z");
		    state.currentNormalization = 1.0e6;
		}
		else if(state.currentMAX >= 1.0e-9 && state.currentMAX < 1.0e-6){
		    rwccq.setLabels("Current Distribution"," [ nA ]","z");
		    state.currentNormalization = 1.0e9;
		}
		else if(state.currentMAX >= 1.0e-12 && state.currentMAX < 1.0e-9){
		    rwccq.setLabels("Current Distribution"," [ pA ]","z");
		    state.currentNormalization = 1.0e12;
		}
		else if(state.currentMAX < 1.0e-12){
		    rwccq.setLabels("Current Distribution"," [ fA ]","z");
		    state.currentNormalization = 1.0e15;
		}
		rwccq.plot(state.zposLarge,state.currentMLarge,state.currentNormalization,state.currentMIN,state.currentin);
	    
		rwccq.ignition();
		rwccq.repaint();
	    
		rwcca.setYRangeMax(state.DVMax);
		rwcca.setYRangeMin(0.0);
		rwcca.plotZeroLine(false);
		rwcca.plotRefPoint(true);
		rwcca.setLabels("Directivity","","Dipole Length","");
		rwcca.setRefPoint(state.a);
		rwcca.plot(state.leng,state.DVector, state.IsDirectivity);
		rwcca.ignition();
		rwcca.repaint();
		    
		rwccb.setYRangeMax(state.RVMax);
		rwccb.setYRangeMin(0.0);
		rwccb.plotZeroLine(false);
		rwccb.plotRefPoint(true);
		rwccb.setLabels("Radiation Resistance","","Dipole Length","");
		rwccb.setRefPoint(state.a);
		rwccb.plot(state.leng,state.RVector, state.IsDirectivity);
		rwccb.ignition();
		rwccb.repaint();
	    
		rwccb2.setYRangeMax(state.XVMax);
		rwccb2.setYRangeMin(state.XVMin);
		rwccb2.plotZeroLine(true);
		rwccb2.plotRefPoint(true);
		rwccb2.setLabels("Self Reactance","","Dipole Length","");
		rwccb2.setRefPoint(state.a);
		rwccb2.plot(state.leng,state.XVector, state.IsDirectivity);
		rwccb2.ignition();
		rwccb2.repaint();
	    
		rwccd.setYRangeMax(state.RinVMax);
		rwccd.setYRangeMin(0.0);
		rwccd.plotZeroLine(false);
		rwccd.plotRefPoint(true);
		rwccd.setLabels("Input Resistance","","Dipole Length","");
		rwccd.setRefPoint(state.a);
		rwccd.plot(state.leng,state.RinVector, state.RVector, state.IsDirectivity);
		rwccd.ignition();
		rwccd.repaint();
	    
		rwccd2.setYRangeMax(state.XinVMax);
		rwccd2.setYRangeMin(state.XinVMin);
		rwccd2.plotZeroLine(true);
		rwccd2.plotRefPoint(true);
		rwccd2.setLabels("Input Reactance","","Dipole Length","");
		rwccd2.setRefPoint(state.a);
		rwccd2.plot(state.leng,state.XinVector, state.XVector, state.IsDirectivity);
		rwccd2.ignition();
		rwccd2.repaint();
	    
		rwc.setFrequency(state.frequency);
		rwc.setEpsilon(state.epsilon_r);
		rwc.setAntennaLength(state.DipoleLength_lambda);
		rwc.setAntennaRadius(state.wire_radius);
	    
		rwc2.setFrequency(state.frequency);
		rwc2.setEpsilon(state.epsilon_r);
		rwc2.setWavelength(state.wavelength);
		rwc2.setTheta(state.theta_angle);
		rwc2.setPhi(state.phi_angle);
		rwc2.setDistance(state.point_distance);
	    
		rwc.repaint();
		rwc2.repaint();
	    
		outputpanel.rwocA.repaint();
		outputpanel.rwocB.repaint();
		outputpanel.rwocField.repaint();
		outputpanel12.rwocW.repaint();
		outputpanel12.rwocZ.repaint();
	    }
        
        if(evt.getSource()==inputpanel2.b2a || evt.getSource()==inputpanel2.b2b ||
           evt.getSource()==inputpanel2.b3a || evt.getSource()==inputpanel2.b3b ||
           evt.getSource()==inputpanel2.b4a || evt.getSource()==inputpanel2.b4b ||
           evt.getSource()==inputpanel2.b5a || evt.getSource()==inputpanel2.b5b ||
           evt.getSource()==inputpanel2.b6a || evt.getSource()==inputpanel2.b6b )
	    {
		state.ignition();
		state.need_update = true;
		//state.scan_coefficients();
		state.scanCurrent();
		inputpanel2.repaint();
            
		cp3D.slider1.setValue((int)(state.phi_angle));
		cp3D.repaint();
	    
		rwccq.setYRangeMax(state.currentMAX);
		rwccq.setYRangeMin(-state.currentMAX);
		//rwccq.setYRangeMin(0.0);
		rwccq.plotZeroLine(true);
		rwccq.plotRefPoint(false);
		    
		if(state.currentMAX >= 1.0){
		    rwccq.setLabels("Current Distribution"," [ A ]","z");
		    state.currentNormalization = 1.0;
		}
		else if(state.currentMAX >= 1.0e-3 && state.currentMAX < 1.0){
		    rwccq.setLabels("Current Distribution"," [ mA ]","z");
		    state.currentNormalization = 1.0e3;
		}
		else if(state.currentMAX >= 1.0e-6 && state.currentMAX < 1.0e-3){
		    rwccq.setLabels("Current Distribution"," [ \u00b5A ]","z");
		    state.currentNormalization = 1.0e6;
		}
		else if(state.currentMAX >= 1.0e-9 && state.currentMAX < 1.0e-6){
		    rwccq.setLabels("Current Distribution"," [ nA ]","z");
		    state.currentNormalization = 1.0e9;
		}
		else if(state.currentMAX >= 1.0e-12 && state.currentMAX < 1.0e-9){
		    rwccq.setLabels("Current Distribution"," [ pA ]","z");
		    state.currentNormalization = 1.0e12;
		}
		else if(state.currentMAX < 1.0e-12){
		    rwccq.setLabels("Current Distribution"," [ fA ]","z");
		    state.currentNormalization = 1.0e15;
		}
		rwccq.plot(state.zposLarge,state.currentMLarge,state.currentNormalization,state.currentMIN,state.currentin);
	    
		rwccq.ignition();
		rwccq.repaint();
	    
		rwc.setFrequency(state.frequency);
		rwc.setEpsilon(state.epsilon_r);
		rwc.setAntennaLength(state.DipoleLength_lambda);
		rwc.setAntennaRadius(state.wire_radius);
	    
		rwc2.setFrequency(state.frequency);
		rwc2.setEpsilon(state.epsilon_r);
		rwc2.setWavelength(state.wavelength);
		rwc2.setTheta(state.theta_angle);
		rwc2.setPhi(state.phi_angle);
		rwc2.setDistance(state.point_distance);
	    
		rwc.repaint();
		rwc2.repaint();
	    
		outputpanel.rwocA.repaint();
		outputpanel.rwocB.repaint();
		outputpanel.rwocField.repaint();
		outputpanel12.rwocW.repaint();
		outputpanel12.rwocZ.repaint();
	    
		cp3D.text3.setText(""+state.point_distance);
		cp3D.repaint();
	    }
	*/

        //if(evt.getSource()==about.bupdate){
        //        about.setVisible(false);
        if (evt.getSource()==instructions.bupdate){
	    instructions.setVisible(false);
	    instrFrame.setVisible(false);
                
	    if(state.ShowWhich == 1){
		rwconp.ch2.select(" Set Antenna Parameters");
	    }
	    else if(state.ShowWhich == 2){
		rwconp.ch2.select(" Scan Fields and Power");
	    }
	    else if(state.ShowWhich == 3){
		rwconp.ch2.select(" Plot Current Distribution");
	    }
	    else if(state.ShowWhich == 4){
		rwconp.ch2.select(" Plot Field Distribution");
	    }
        }

	if(evt.getSource()==inputpanel.bupdate){
	    
	    state.ignition();
	    state.scan_coefficients();
	    state.scanCurrent();
	    
	    	    
	    rwccq.setYRangeMax(state.currentMAX);
	    rwccq.setYRangeMin(-state.currentMAX);
	    //rwccq.setYRangeMin(0.0);
	    rwccq.plotZeroLine(true);
	    rwccq.plotRefPoint(false);
		    
	    if(state.currentMAX >= 1.0){
		rwccq.setLabels("Current Distribution"," [ A ]","z");
		state.currentNormalization = 1.0;
	    }
	    else if(state.currentMAX >= 1.0e-3 && state.currentMAX < 1.0){
		rwccq.setLabels("Current Distribution"," [ mA ]","z");
		state.currentNormalization = 1.0e3;
	    }
	    else if(state.currentMAX >= 1.0e-6 && state.currentMAX < 1.0e-3){
		rwccq.setLabels("Current Distribution"," [ \u00b5A ]","z");
		state.currentNormalization = 1.0e6;
	    }
	    else if(state.currentMAX >= 1.0e-9 && state.currentMAX < 1.0e-6){
		rwccq.setLabels("Current Distribution"," [ nA ]","z");
		state.currentNormalization = 1.0e9;
	    }
	    else if(state.currentMAX >= 1.0e-12 && state.currentMAX < 1.0e-9){
		rwccq.setLabels("Current Distribution"," [ pA ]","z");
		state.currentNormalization = 1.0e12;
	    }
	    else if(state.currentMAX < 1.0e-12){
		rwccq.setLabels("Current Distribution"," [ fA ]","z");
		state.currentNormalization = 1.0e15;
	    }
	    rwccq.plot(state.zposLarge,state.currentMLarge,state.currentNormalization,state.currentMIN,state.currentin);
	    
	    rwccq.ignition();
	    rwccq.repaint();
	   
	    rwcca.setYRangeMax(state.DVMax);
	    rwcca.setYRangeMin(0.0);
	    rwcca.plotZeroLine(false);
	    rwcca.plotRefPoint(true);
	    rwcca.setLabels("Directivity","","Dipole Length","");
	    rwcca.setRefPoint(state.a);
	    rwcca.plot(state.leng,state.DVector, state.IsDirectivity);
	    rwcca.ignition();
	    rwcca.repaint();
		    
	    rwccb.setYRangeMax(state.RVMax);
	    rwccb.setYRangeMin(0.0);
	    rwccb.plotZeroLine(false);
	    rwccb.plotRefPoint(true);
	    rwccb.setLabels("Radiation Resistance","","Dipole Length","");
	    rwccb.setRefPoint(state.a);
	    rwccb.plot(state.leng,state.RVector, state.IsDirectivity);
	    rwccb.ignition();
	    rwccb.repaint();
	    
	    rwccb2.setYRangeMax(state.XVMax);
	    rwccb2.setYRangeMin(state.XVMin);
	    rwccb2.plotZeroLine(true);
	    rwccb2.plotRefPoint(true);
	    rwccb2.setLabels("Self Reactance","","Dipole Length","");
	    rwccb2.setRefPoint(state.a);
	    rwccb2.plot(state.leng,state.XVector, state.IsDirectivity);
	    rwccb2.setWireRadius(state.wire_radius);
	    rwccb2.ignition();
	    rwccb2.repaint();
	    
	    rwccd.setYRangeMax(state.RinVMax);
	    rwccd.setYRangeMin(0.0);
	    rwccd.plotZeroLine(false);
	    rwccd.plotRefPoint(true);
	    rwccd.setLabels("Input Resistance","","Dipole Length","");
	    rwccd.setRefPoint(state.a);
	    rwccd.plot(state.leng,state.RinVector,state.RVector, state.IsDirectivity);
	    rwccd.ignition();
	    rwccd.repaint();
	    
	    rwccd2.setYRangeMax(state.XinVMax);
	    rwccd2.setYRangeMin(state.XinVMin);
	    rwccd2.plotZeroLine(true);
	    rwccd2.plotRefPoint(true);
	    rwccd2.setLabels("Input Reactance","","Dipole Length","");
	    rwccd2.setRefPoint(state.a);
	    rwccd2.plot(state.leng,state.XinVector, state.XVector, state.IsDirectivity);
	    rwccd2.setWireRadius(state.wire_radius);
	    rwccd2.ignition();
	    rwccd2.repaint();
	   
	    rwc.setFrequency(state.frequency);
	    rwc.setEpsilon(state.epsilon_r);
	    rwc.setAntennaLength(state.DipoleLength_lambda);
	    rwc.setAntennaRadius(state.wire_radius);
	    
	    rwc2.setFrequency(state.frequency);
	    rwc2.setEpsilon(state.epsilon_r);
	    rwc2.setWavelength(state.wavelength);
	    rwc2.setTheta(state.theta_angle);
	    rwc2.setPhi(state.phi_angle);
	    rwc2.setDistance(state.point_distance);
	    
	    rwc.repaint();
	    rwc2.repaint();
	   
	    outputpanel.rwocA.repaint();
	    outputpanel.rwocB.repaint();
	    outputpanel.rwocField.repaint();
    	    outputpanel12.rwocW.repaint();
	    //outputpanel12.rwocZ.repaint();
	    
	}
	
	else if(evt.getSource()==inputpanel2.bupdate){
	    
	    state.ignition();
	    //state.scan_coefficients();
	    state.scanCurrent();
	    
	    	    
	    rwccq.setYRangeMax(state.currentMAX);
	    rwccq.setYRangeMin(-state.currentMAX);
	    //rwccq.setYRangeMin(0.0);
	    rwccq.plotZeroLine(true);
	    rwccq.plotRefPoint(false);
		    
	    if(state.currentMAX >= 1.0){
		rwccq.setLabels("Current Distribution"," [ A ]","z");
		state.currentNormalization = 1.0;
	    }
	    else if(state.currentMAX >= 1.0e-3 && state.currentMAX < 1.0){
		rwccq.setLabels("Current Distribution"," [ mA ]","z");
		state.currentNormalization = 1.0e3;
	    }
	    else if(state.currentMAX >= 1.0e-6 && state.currentMAX < 1.0e-3){
		rwccq.setLabels("Current Distribution"," [ \u00b5A ]","z");
		state.currentNormalization = 1.0e6;
	    }
	    else if(state.currentMAX >= 1.0e-9 && state.currentMAX < 1.0e-6){
		rwccq.setLabels("Current Distribution"," [ nA ]","z");
		state.currentNormalization = 1.0e9;
	    }
	    else if(state.currentMAX >= 1.0e-12 && state.currentMAX < 1.0e-9){
		rwccq.setLabels("Current Distribution"," [ pA ]","z");
		state.currentNormalization = 1.0e12;
	    }
	    else if(state.currentMAX < 1.0e-12){
		rwccq.setLabels("Current Distribution"," [ fA ]","z");
		state.currentNormalization = 1.0e15;
	    }
	    rwccq.plot(state.zposLarge,state.currentMLarge,state.currentNormalization,state.currentMIN,state.currentin);
	    
	    rwccq.ignition();
	    rwccq.repaint();
	    
	    rwc.setFrequency(state.frequency);
	    rwc.setEpsilon(state.epsilon_r);
	    rwc.setAntennaLength(state.DipoleLength_lambda);
	    rwc.setAntennaRadius(state.wire_radius);
	    
	    rwc2.setFrequency(state.frequency);
	    rwc2.setEpsilon(state.epsilon_r);
	    rwc2.setWavelength(state.wavelength);
	    rwc2.setTheta(state.theta_angle);
	    rwc2.setPhi(state.phi_angle);
	    rwc2.setDistance(state.point_distance);
    
	    rwc.repaint();
	    rwc2.repaint();
	   
	    outputpanel.rwocA.repaint();
	    outputpanel.rwocB.repaint();
	    outputpanel.rwocField.repaint();
    	    outputpanel12.rwocW.repaint();
	    //outputpanel12.rwocZ.repaint();
	    
	    cp3D.slider1.setValue((int)(state.phi_angle));	    
	    cp3D.text3.setText(""+state.point_distance);
	    cp3D.repaint();
	}
	
	else if(evt.getSource()==cp3D.bupdate){
	    update3D();
	}
        //======================================================================
        if(evt.getSource()==cp3D.bplot1){
	    cp3D.show_2D_plots = true;
	    cp3D.show_polar_plots = false;
	    cp3D.show_data = false;

	    setPanelVisible(plotPanel1);
	    setPanelVisible(plotPanel2);

            
	    state.IsPolar = false;
	    rwccf.setPolar(state.IsPolar);
	    rwccg.setPolar(state.IsPolar);
	    rwcch.setPolar(state.IsPolar);
	    rwccj.setPolar(state.IsPolar);
	    rwcck.setPolar(state.IsPolar);
	    rwccl.setPolar(state.IsPolar);
	    rwccm.setPolar(state.IsPolar);
	    rwccn.setPolar(state.IsPolar);
	    rwcco.setPolar(state.IsPolar);
	    rwccp.setPolar(state.IsPolar);
	    rwccr.setPolar(state.IsPolar);
	    rwccs.setPolar(state.IsPolar);
	    rwcct.setPolar(state.IsPolar);
	    rwccu.setPolar(state.IsPolar);
	    rwccv.setPolar(state.IsPolar);
	    rwccw.setPolar(state.IsPolar);
	    
	    rwccf.repaint();
	    rwccg.repaint();
	    rwcch.repaint();
	    rwccj.repaint();
	    rwcck.repaint();
	    rwccl.repaint();
	    rwccm.repaint();
	    rwccn.repaint();
	    rwcco.repaint();
	    rwccp.repaint();
	    rwccr.repaint();
	    rwccs.repaint();
	    rwcct.repaint();
	    rwccu.repaint();
	    rwccv.repaint();
	    rwccw.repaint();
	}
	if(evt.getSource()==cp3D.bplot2){
	    cp3D.show_2D_plots = false;
	    cp3D.show_polar_plots = true;
	    cp3D.show_data = false;

	    setPanelVisible(plotPanel1);
	    setPanelVisible(plotPanel2);
            
	    state.IsPolar = true;
	    rwccf.setPolar(state.IsPolar);
	    rwccg.setPolar(state.IsPolar);
	    rwcch.setPolar(state.IsPolar);
	    rwccj.setPolar(state.IsPolar);
	    rwcck.setPolar(state.IsPolar);
	    rwccl.setPolar(state.IsPolar);
	    rwccm.setPolar(state.IsPolar);
	    rwccn.setPolar(state.IsPolar);
	    rwcco.setPolar(state.IsPolar);
	    rwccp.setPolar(state.IsPolar);
	    rwccr.setPolar(state.IsPolar);
	    rwccs.setPolar(state.IsPolar);
	    rwcct.setPolar(state.IsPolar);
	    rwccu.setPolar(state.IsPolar);
	    rwccv.setPolar(state.IsPolar);
	    rwccw.setPolar(state.IsPolar);
	    
	    rwccf.repaint();
	    rwccg.repaint();
	    rwcch.repaint();
	    rwccj.repaint();
	    rwcck.repaint();
	    rwccl.repaint();
	    rwccm.repaint();
	    rwccn.repaint();
	    rwcco.repaint();
	    rwccp.repaint();
	    rwccr.repaint();
	    rwccs.repaint();
	    rwcct.repaint();
	    rwccu.repaint();
	    rwccv.repaint();
	    rwccw.repaint();
	    
	}
	if(evt.getSource()==cp3D.bplot3){
	    cp3D.show_2D_plots = false;
	    cp3D.show_polar_plots = false;
	    cp3D.show_data = true;

	    // Offload this, because takes alot of time, and
	    //  GUI seems unresponsive otherwise:
	    DataPanelThread data_thread = new DataPanelThread();
	    data_thread.start();		    	    

            /*
	    if(cp3D.show_spher1){
		setPanelVisible(outputpanel2);
		setPanelVisible(outputpanel3);
	    } else if (cp3D.show_spher2){
		setPanelVisible(outputpanel4);
		setPanelVisible(outputpanel5);
	    } else if (cp3D.show_spher3){
		setPanelVisible(outputpanel13);
		setPanelVisible(outputpanel14);
	    } else if (cp3D.show_cart1){
		setPanelVisible(outputpanel6);
		setPanelVisible(outputpanel7);
	    } else if (cp3D.show_cart2){
		setPanelVisible(outputpanel8);
		setPanelVisible(outputpanel9);
	    } else if (cp3D.show_cart3){
		setPanelVisible(outputpanel10);
		setPanelVisible(outputpanel11);
	    } else if (cp3D.show_cart4){
		setPanelVisible(outputpanel15);
		setPanelVisible(outputpanel16);

		outputpanel15.rwoc10P.repaint_data();
		outputpanel15.rwoc11P.repaint_data();
		outputpanel15.tcanvas14.repaint();
		outputpanel16.rwoc12P.repaint_data();
		outputpanel16.rwoc13P.repaint_data();
		outputpanel16.tcanvas15.repaint();
	    } else if (cp3D.show_cart5){
		setPanelVisible(outputpanel17);
		setPanelVisible(outputpanel18);
                
		outputpanel17.rwoc14P.repaint_data();
		outputpanel17.rwoc15P.repaint_data();
		outputpanel17.tcanvas16.repaint();
		outputpanel18.rwoc16P.repaint_data();
		outputpanel18.rwoc17P.repaint_data();
		outputpanel18.tcanvas17.repaint();
	    }
	    state.IsPolar = false;
	    
	    rwccf.setPolar(state.IsPolar);
	    rwccg.setPolar(state.IsPolar);
	    rwcch.setPolar(state.IsPolar);
	    rwccj.setPolar(state.IsPolar);
	    rwcck.setPolar(state.IsPolar);
	    rwccl.setPolar(state.IsPolar);
	    rwccm.setPolar(state.IsPolar);
	    rwccn.setPolar(state.IsPolar);
	    rwcco.setPolar(state.IsPolar);
	    rwccp.setPolar(state.IsPolar);
	    rwccr.setPolar(state.IsPolar);
	    rwccs.setPolar(state.IsPolar);
	    rwcct.setPolar(state.IsPolar);
	    rwccu.setPolar(state.IsPolar);
	    rwccv.setPolar(state.IsPolar);
	    rwccw.setPolar(state.IsPolar);
	    
	    rwccf.repaint();
	    rwccg.repaint();
	    rwcch.repaint();
	    rwccj.repaint();
	    rwcck.repaint();
	    rwccl.repaint();
	    rwccm.repaint();
	    rwccn.repaint();
	    rwcco.repaint();
	    rwccp.repaint();
	    rwccr.repaint();
	    rwccs.repaint();
	    rwcct.repaint();
	    rwccu.repaint();
	    rwccv.repaint();
	    rwccw.repaint();
	    */
	    
	} else if (evt.getSource()==cp3D.bSpher1){
            cp3D.show_spher1 = true;
	    cp3D.show_spher2 = false;
            cp3D.show_spher3 = false;
            cp3D.show_cart1 = false;
            cp3D.show_cart2 = false;
            cp3D.show_cart3 = false;
            cp3D.show_cart4 = false;
            cp3D.show_cart5 = false;
            
	    plotPanel1 = rwccf;
	    plotPanel2 = rwccg;
	    setPanelVisible(rwccf);
	    setPanelVisible(rwccg);
	    
	    rwccf.repaint();
	    rwccg.repaint();
	    
	    if (cp3D.show_data) {
		setPanelVisible(outputpanel2);
		setPanelVisible(outputpanel3);
	    }
            
            //update3D();
	    update3D();
    	}

	else if (evt.getSource()==cp3D.bSpher2){
            cp3D.show_spher1 = false;
	    cp3D.show_spher2 = true;
            cp3D.show_spher3 = false;
            cp3D.show_cart1 = false;
            cp3D.show_cart2 = false;
            cp3D.show_cart3 = false;
            cp3D.show_cart4 = false;
            cp3D.show_cart5 = false;
            
	    plotPanel1 = rwcch;
	    plotPanel2 = rwccj;
	    setPanelVisible(rwcch);
	    setPanelVisible(rwccj);

            rwcch.repaint();
	    rwccj.repaint();
	    
	    if (cp3D.show_data) {
		setPanelVisible(outputpanel4);
		setPanelVisible(outputpanel5);
	    }
            //update3D();
	    update3D();
	}

	else if (evt.getSource()==cp3D.bSpher3){
            cp3D.show_spher1 = false;
	    cp3D.show_spher2 = false;
            cp3D.show_spher3 = true;
            cp3D.show_cart1 = false;
            cp3D.show_cart2 = false;
            cp3D.show_cart3 = false;
            cp3D.show_cart4 = false;
            cp3D.show_cart5 = false;
            
	    plotPanel1 = rwccr;
	    plotPanel2 = rwccs;
	    setPanelVisible(rwccr);
	    setPanelVisible(rwccs);
	    
	    rwccr.repaint();
	    rwccs.repaint();
	    
	    if (cp3D.show_data) {
		setPanelVisible(outputpanel13);
		setPanelVisible(outputpanel14);
	    }
            //update3D();
	    update3D();
	}

	else if (evt.getSource()==cp3D.bCart1){
            cp3D.show_spher1 = false;
	    cp3D.show_spher2 = false;
            cp3D.show_spher3 = false;
            cp3D.show_cart1 = true;
            cp3D.show_cart2 = false;
            cp3D.show_cart3 = false;
            cp3D.show_cart4 = false;
            cp3D.show_cart5 = false;
            
	    plotPanel1 = rwcck;
	    plotPanel2 = rwccn;
	    setPanelVisible(rwcck);
	    setPanelVisible(rwccn);
	    
	    rwcck.repaint();
	    rwccn.repaint();
	    
	    if (cp3D.show_data) {
		setPanelVisible(outputpanel6);
		setPanelVisible(outputpanel7);
	    }
	    // update3D();
	    update3D();
	}

	else if (evt.getSource()==cp3D.bCart2){
            cp3D.show_spher1 = false;
	    cp3D.show_spher2 = false;
            cp3D.show_spher3 = false;
            cp3D.show_cart1 = false;
            cp3D.show_cart2 = true;
            cp3D.show_cart3 = false;
            cp3D.show_cart4 = false;
            cp3D.show_cart5 = false;
            
	    plotPanel1 = rwccl;
	    plotPanel2 = rwcco;
	    setPanelVisible(rwccl);
	    setPanelVisible(rwcco);
	    
	    rwccl.repaint();
	    rwcco.repaint();
	    
	    if (cp3D.show_data) {
		setPanelVisible(outputpanel8);
		setPanelVisible(outputpanel9);
	    }
            //update3D();
	    update3D();
	}

	else if (evt.getSource()==cp3D.bCart3){
            cp3D.show_spher1 = false;
	    cp3D.show_spher2 = false;
            cp3D.show_spher3 = false;
            cp3D.show_cart1 = false;
            cp3D.show_cart2 = false;
            cp3D.show_cart3 = true;
            cp3D.show_cart4 = false;
            cp3D.show_cart5 = false;
            
	    plotPanel1 = rwccm;
	    plotPanel2 = rwccp;
	    setPanelVisible(rwccm);
	    setPanelVisible(rwccp);
	    
	    rwccm.repaint();
	    rwccp.repaint();
	    
	    if (cp3D.show_data) {
		setPanelVisible(outputpanel10);
		setPanelVisible(outputpanel11);
	    }
            //update3D();
	    update3D();
	}

	else if (evt.getSource()==cp3D.bCart4){
            cp3D.show_spher1 = false;
	    cp3D.show_spher2 = false;
            cp3D.show_spher3 = false;
            cp3D.show_cart1 = false;
            cp3D.show_cart2 = false;
            cp3D.show_cart3 = false;
            cp3D.show_cart4 = true;
            cp3D.show_cart5 = false;
            
	    plotPanel1 = rwcct;
	    plotPanel2 = rwccu;
	    setPanelVisible(rwcct);
	    setPanelVisible(rwccu);
	    
	    rwcct.repaint();
	    rwccu.repaint();
	    
	    if (cp3D.show_data) {
		setPanelVisible(outputpanel15);
		setPanelVisible(outputpanel16);
	    }
            //update3D();
	    update3D();
	}

	else if (evt.getSource()==cp3D.bCart5){
            cp3D.show_spher1 = false;
	    cp3D.show_spher2 = false;
            cp3D.show_spher3 = false;
            cp3D.show_cart1 = false;
            cp3D.show_cart2 = false;
            cp3D.show_cart3 = false;
            cp3D.show_cart4 = false;
            cp3D.show_cart5 = true;
            	    
	    plotPanel1 = rwccv;
	    plotPanel2 = rwccw;
	    setPanelVisible(rwccv);
	    setPanelVisible(rwccw);
	    
	    rwccv.repaint();
	    rwccw.repaint();
	    
	    if (cp3D.show_data) {
		setPanelVisible(outputpanel17);
		setPanelVisible(outputpanel18);
	    }
            //update3D();
	    update3D();
	}
	 
        //======================================================================
	
	else if(evt.getSource()==inputpanel.b1){
	    
	    a_panel.setUnit(true);
	    
	    a_panel.setMinimum(state.a_minimum);
	    a_panel.setMaximum(state.a_maximum);
	    
	    setPanelVisible(a_panel);
	    setPanelVisible(distance_panel);
	}

	else if(evt.getSource()==inputpanel.b2){
	    frequency_panel.setUnit(false);
	    
	    setPanelVisible(frequency_panel);
	}
	
	else if(evt.getSource()==inputpanel.b3){
	    current_panel.setUnit(false);
	    
	    setPanelVisible(current_panel);
	}
	
	else if(evt.getSource()==inputpanel2.b2){
	    distance_panel.setUnit(true);
	   
	    distance_panel.setMinimum(state.distance_minimum);
	    distance_panel.setMaximum(state.distance_maximum);
	    
	    setPanelVisible(distance_panel);
	}
	
	else if(evt.getSource()==a_panel.b1){
	    setPanelVisible(inputpanel);
	  
	    state.a_minimum = a_panel.getMinimum();
	    state.a_maximum = a_panel.getMaximum();
	    
	    if(state.a >= state.a_minimum && state.a <= state.a_maximum){
		inputpanel.slider1.setValue((int)(inputpanel.ScrollMax*(state.a-state.a_minimum)
						  /(state.a_maximum-state.a_minimum)));
	    }
	    else if(state.a < state.a_minimum){
		state.a = state.a_minimum;
		inputpanel.slider1.setValue(0);
		inputpanel.text1.setText(""+state.a);
	    }
	    
	    else if(state.a > state.a_maximum){
		state.a = state.a_maximum;
		inputpanel.slider1.setValue(inputpanel.ScrollMax);
		inputpanel.text1.setText(""+state.a);
	    }
	    
	    state.ignition();
	    state.scan_coefficients();
	    state.scanCurrent();
	    
	    rwcca.setYRangeMax(state.DVMax);
	    rwcca.setYRangeMin(0.0);
	    rwcca.plotZeroLine(false);
	    rwcca.plotRefPoint(true);
	    rwcca.setLabels("Directivity","","Dipole Length","");
	    rwcca.setRefPoint(state.a);
	    rwcca.plot(state.leng,state.DVector, state.IsDirectivity);
	    rwcca.ignition();
	    rwcca.repaint();
	    
	    rwccb.setYRangeMax(state.RVMax);
	    rwccb.setYRangeMin(0.0);
	    rwccb.plotZeroLine(false);
	    rwccb.plotRefPoint(true);
	    rwccb.setLabels("Radiation Resistance","","Dipole Length","");
	    rwccb.setRefPoint(state.a);
	    rwccb.plot(state.leng,state.RVector, state.IsDirectivity);
	    rwccb.ignition();
	    rwccb.repaint();
	    
	    rwccb2.setYRangeMax(state.XVMax);
	    rwccb2.setYRangeMin(state.XVMin);
	    rwccb2.plotZeroLine(true);
	    rwccb2.plotRefPoint(true);
	    rwccb2.setLabels("Self Reactance","","Dipole Length","");
	    rwccb2.setRefPoint(state.a);
	    rwccb2.plot(state.leng,state.XVector, state.IsDirectivity);
	    rwccb2.ignition();
	    rwccb2.repaint();
	    
	    rwccd.setYRangeMax(state.RinVMax);
	    rwccd.setYRangeMin(0.0);
	    rwccd.plotZeroLine(false);
	    rwccd.plotRefPoint(true);
	    rwccd.setLabels("Input Resistance","","Dipole Length","");
	    rwccd.setRefPoint(state.a);
	    rwccd.plot(state.leng,state.RinVector, state.RVector, state.IsDirectivity);
	    rwccd.ignition();
	    rwccd.repaint();
	    
	    rwccd2.setYRangeMax(state.XinVMax);
	    rwccd2.setYRangeMin(state.XinVMin);
	    rwccd2.plotZeroLine(true);
	    rwccd2.plotRefPoint(true);
	    rwccd2.setLabels("Input Reactance","","Dipole Length","");
	    rwccd2.setRefPoint(state.a);
	    rwccd2.plot(state.leng,state.XinVector, state.XVector, state.IsDirectivity);
	    rwccd2.ignition();
	    rwccd2.repaint();
	    
	    rwc.setFrequency(state.frequency);
	    rwc.repaint();
	    rwc2.repaint();
	   
	    outputpanel.rwocA.repaint();
	    outputpanel.rwocB.repaint();
	    outputpanel.rwocField.repaint();
	    outputpanel12.rwocW.repaint();
	    //outputpanel12.rwocZ.repaint();
	}
	else if(evt.getSource()==frequency_panel.b1){
	    setPanelVisible(inputpanel);
	    
	    state.frequency_minimum = frequency_panel.getMinimum();
	    state.frequency_maximum = frequency_panel.getMaximum();
	    
	    
	    if(state.frequency >= state.frequency_minimum && state.frequency <= state.frequency_maximum){
		inputpanel.slider2.setValue((int)(inputpanel.ScrollMax*(state.frequency-state.frequency_minimum)
						  /(state.frequency_maximum-state.frequency_minimum)));
	    }
	    else if(state.frequency < state.frequency_minimum){
		state.frequency = state.frequency_minimum;
		inputpanel.slider2.setValue(0);
		inputpanel.text4.setText(""+state.frequency);
	    }
	
	    else if(state.frequency > state.frequency_maximum){
		state.frequency = state.frequency_maximum;
		inputpanel.slider2.setValue(inputpanel.ScrollMax);
		inputpanel.text4.setText(""+state.frequency);
	    }
	    state.ignition();
	    //state.scan_coefficients();
	    state.scanCurrent();
	    
	    outputpanel.rwocA.repaint();
	    outputpanel.rwocB.repaint();
	    outputpanel.rwocField.repaint();
	    outputpanel12.rwocW.repaint();
	    //outputpanel12.rwocZ.repaint();
	    
	    rwc.setFrequency(state.frequency);
	    rwc.repaint(); 
	    rwc2.repaint();
	}
	
	else if(evt.getSource()==current_panel.b1){
	    setPanelVisible(inputpanel);
	    
	    state.currentin_minimum = current_panel.getMinimum();
	    state.currentin_maximum = current_panel.getMaximum();
	    
	    
	    if(state.currentin >= state.currentin_minimum && state.currentin <= state.currentin_maximum){
		inputpanel.slider3.setValue((int)(inputpanel.ScrollMax*(state.currentin-state.currentin_minimum)
						  /(state.currentin_maximum-state.currentin_minimum)));
	    }
	    else if(state.currentin < state.currentin_minimum){
		state.currentin = state.currentin_minimum;
		inputpanel.slider3.setValue(0);
		inputpanel.text2.setText(""+state.currentin);
	    }
	
	    else if(state.currentin > state.currentin_maximum){
		state.currentin = state.currentin_maximum;
		inputpanel.slider3.setValue(inputpanel.ScrollMax);
		inputpanel.text2.setText(""+state.currentin);
	    }
	    state.ignition();
	    //state.scan_coefficients();
	    state.scanCurrent();
	    
	    outputpanel.rwocA.repaint();
	    outputpanel.rwocB.repaint();
	    outputpanel.rwocField.repaint();
	    outputpanel12.rwocW.repaint();
	    //outputpanel12.rwocZ.repaint();
	    
	    rwc.setFrequency(state.frequency);
	    rwc.repaint(); 
	    rwc2.repaint();
	}
	
	else if(evt.getSource()==distance_panel.b1){
	    setPanelVisible(inputpanel2);
	  
	    state.distance_minimum = distance_panel.getMinimum();
	    state.distance_maximum = distance_panel.getMaximum();
	
	    if(state.point_distance >= state.distance_minimum && state.point_distance <= state.distance_maximum){
		inputpanel2.slider2.setValue((int)(inputpanel2.ScrollMax*(state.point_distance-state.distance_minimum)
						   /(state.distance_maximum-state.distance_minimum)));
	    }
	    else if(state.point_distance < state.distance_minimum){
		state.point_distance = state.distance_minimum;
		inputpanel2.slider2.setValue(0);
		inputpanel2.text4.setText(""+state.point_distance);
	    }
	
	    else if(state.point_distance > state.distance_maximum){
		state.point_distance = state.distance_maximum;
		inputpanel2.slider2.setValue(inputpanel.ScrollMax);
		inputpanel2.text4.setText(""+state.point_distance);
	    }
	    
        
	    state.ignition();
	    //state.scan_coefficients();
	    state.scanCurrent();
	    
	    rwc.setFrequency(state.frequency);
	    rwc.repaint();
	    rwc2.repaint();
	   
	    outputpanel.rwocA.repaint();
	    outputpanel.rwocB.repaint();
	    outputpanel.rwocField.repaint();
	    outputpanel12.rwocW.repaint();
	    //outputpanel12.rwocZ.repaint();
	}
    }// END FUNCTION actionPerformed


    
    public void itemStateChanged(ItemEvent evt){
	ItemSelectable ie = evt.getItemSelectable();
	    
	if(evt.getSource()==inputpanel.ch2){
			
	    if(ie.getSelectedObjects()[0]==" Directivity"){
		state.IsDirectivity = true;
		state.IsRad = false;
		state.IsRin = false;
		state.IsXrad = false;
		state.IsXin = false;
		state.ignition();
		//state.scan_coefficients();
		state.scanCurrent();
		    
		setPanelVisible(inputpanel);
		setPanelVisible(outputpanel);
		outputpanel.c1.select(" Antenna Data "); 
		setPanelVisible(outputpanel.rwocA);

		rwcca.setYRangeMax(state.DVMax);
		rwcca.setYRangeMin(0.0);
		rwcca.plotZeroLine(false);
		rwcca.plotRefPoint(true);
		rwcca.setLabels("Directivity","","Dipole Length","");
		rwcca.setRefPoint(state.a);
		rwcca.plot(state.leng,state.DVector, state.IsDirectivity);
		    
		setPanelVisible(rwcca);
		rwcca.ignition();
		rwcca.repaint();
		    
		rwc.repaint(); 
		rwc2.repaint(); 
	    }
		
	    if(ie.getSelectedObjects()[0]==" Radiation Resistance"){
		    
		state.IsDirectivity = false;
		state.IsRad = true;
		state.IsRin = false;
		state.IsXrad = false;
		state.IsXin = false;
		    
		state.ignition();
		//state.scan_coefficients();
		state.scanCurrent();
		    
		setPanelVisible(inputpanel);
		setPanelVisible(outputpanel);
		outputpanel.c1.select(" Antenna Data "); 
		setPanelVisible(outputpanel.rwocA);
                   
		rwccb.setYRangeMax(state.RVMax);
		rwccb.setYRangeMin(0.0);
		rwccb.plotZeroLine(false);
		rwccb.plotRefPoint(true);
		rwccb.setLabels("Radiation Resistance","","Dipole Length","");
		rwccb.setRefPoint(state.a);
		rwccb.plot(state.leng,state.RVector, state.IsDirectivity);
		    
		setPanelVisible(rwccb);
		rwccb.ignition();
		rwccb.repaint();
		    		    
		rwc.repaint(); 
		rwc2.repaint(); 
	    }
	    if(ie.getSelectedObjects()[0]==" Self Reactance"){
		    
		state.IsDirectivity = false;
		state.IsRad = false;
		state.IsRin = false;
		state.IsXrad = true;
		state.IsXin = false;
		    
		state.ignition();
		//state.scan_coefficients();
		state.scanCurrent();
		    
		setPanelVisible(inputpanel);
		setPanelVisible(outputpanel);
		outputpanel.c1.select(" Antenna Data "); 
		setPanelVisible(outputpanel.rwocA);

		rwccb2.setYRangeMax(state.XVMax);
		rwccb2.setYRangeMin(state.XVMin);
		rwccb2.plotZeroLine(true);
		rwccb2.plotRefPoint(true);
		rwccb2.setLabels("Self Reactance","","Dipole Length","");
		rwccb2.setRefPoint(state.a);
		rwccb2.plot(state.leng,state.XVector, state.IsDirectivity);
		    
		setPanelVisible(rwccb2);
		rwccb2.ignition();
		rwccb2.repaint();
		    		    
		rwc.repaint(); 
		rwc2.repaint(); 
	    }
		
	    if(ie.getSelectedObjects()[0]==" Input Resistance"){
		    
		state.IsDirectivity = false;
		state.IsRad = false;
		state.IsRin = true;
		state.IsXrad = false;
		state.IsXin = false;
		    
		state.ignition();
		//state.scan_coefficients();
		state.scanCurrent();
		    
		setPanelVisible(inputpanel);
		    
		setPanelVisible(outputpanel);
		outputpanel.c1.select(" Antenna Data "); 
		setPanelVisible(outputpanel.rwocA);
                    
		rwccd.setYRangeMax(state.RinVMax);
		rwccd.setYRangeMin(0.0);
		rwccd.plotZeroLine(false);
		rwccd.plotRefPoint(true);
		rwccd.setLabels("Input Resistance","","Dipole Length","");
		rwccd.setRefPoint(state.a);
		rwccd.plot(state.leng,state.RinVector, state.RVector, state.IsDirectivity);
		    
		setPanelVisible(rwccd);
		rwccd.ignition();
		rwccd.repaint();
		    		    
		rwc.repaint(); 
		rwc2.repaint(); 
	    }
		
	    if(ie.getSelectedObjects()[0]==" Input Reactance"){
		    
		state.IsDirectivity = false;
		state.IsRad = false;
		state.IsRin = false;
		state.IsXrad = false;
		state.IsXin = true;
		    
		state.ignition();
		//state.scan_coefficients();
		state.scanCurrent();
		    
		setPanelVisible(inputpanel);
		    
		setPanelVisible(outputpanel);
		outputpanel.c1.select(" Antenna Data "); 
		setPanelVisible(outputpanel.rwocA);
                    
		rwccd2.setYRangeMax(state.XinVMax);
		rwccd2.setYRangeMin(state.XinVMin);
		rwccd2.plotZeroLine(true);
		rwccd2.plotRefPoint(true);
		rwccd2.setLabels("Input Reactance","","Dipole Length","");
		rwccd2.setRefPoint(state.a);
		rwccd2.plot(state.leng,state.XinVector, state.XVector, state.IsDirectivity);
		    
		setPanelVisible(rwccd2);
		rwccd2.ignition();
		rwccd2.repaint();
		    
		rwc.repaint(); 
		rwc2.repaint(); 
	    }		
	}
	//----------------------
	
	
	if(evt.getSource()==rwconp.ch2){
	
	    if(ie.getSelectedObjects()[0]==" Set Antenna Parameters"){
		state.ShowWhich =1;
		state.ignition();
		//state.scan_coefficients();
		state.scanCurrent();
		    
		setPanelVisible(inputpanel);
		    
		setPanelVisible(outputpanel);
		outputpanel.c1.select(" Antenna Data "); 
		setPanelVisible(outputpanel.rwocA);
                    
		if(state.IsDirectivity){
		    setPanelVisible(rwcca);
		    rwcca.setYRangeMax(state.DVMax);
		    rwcca.setYRangeMin(0.0);
		    rwcca.plotZeroLine(false);
		    rwcca.plotRefPoint(true);
		    rwcca.setLabels("Directivity","","Dipole Length","");
		    rwcca.setRefPoint(state.a);
		    rwcca.plot(state.leng,state.DVector, state.IsDirectivity);
		    rwcca.ignition();
		    rwcca.repaint();
		}
		if(state.IsRad){
		    setPanelVisible(rwccb);
		    rwccb.setYRangeMax(state.RVMax);
		    rwccb.setYRangeMin(0.0);
		    rwccb.plotZeroLine(false);
		    rwccb.plotRefPoint(true);
		    rwccb.setLabels("Radiation Resistance","","Dipole Length","");
		    rwccb.setRefPoint(state.a);
		    rwccb.plot(state.leng,state.RVector, state.IsDirectivity);
		    rwccb.ignition();
		    rwccb.repaint();
		}
		if(state.IsXrad){
		    setPanelVisible(rwccb2);
		    rwccb2.setYRangeMax(state.XVMax);
		    rwccb2.setYRangeMin(state.XVMin);
		    rwccb2.plotZeroLine(true);
		    rwccb2.plotRefPoint(true);
		    rwccb2.setLabels("Self Reactance","","Dipole Length","");
		    rwccb2.setRefPoint(state.a);
		    rwccb2.plot(state.leng,state.XVector, state.IsDirectivity);
		    rwccb2.ignition();
		    rwccb2.repaint();
		}
		if(state.IsRin){
		    setPanelVisible(rwccd);
		    rwccd.setYRangeMax(state.RinVMax);
		    rwccd.setYRangeMin(0.0);
		    rwccd.plotZeroLine(false);
		    rwccd.plotRefPoint(true);
		    rwccd.setLabels("Input Resistance","","Dipole Length","");
		    rwccd.setRefPoint(state.a);
		    rwccd.plot(state.leng,state.RinVector, state.RVector, state.IsDirectivity);
		    rwccd.ignition();
		    rwccd.repaint();
		}	    
		    
		rwc.repaint(); 
		rwc2.repaint(); 
	    }
		
	    if(ie.getSelectedObjects()[0]==" Scan Fields and Power"){
		state.ShowWhich = 2;
		state.ignition();
		//state.scan_coefficients();
		state.scanCurrent();
		    
		setPanelVisible(inputpanel2);
		setPanelVisible(outputpanel);
		    
		outputpanel.c1.select(" Field Scanner "); 
		setPanelVisible(outputpanel.rwocField);
		setPanelVisible(rwc2);
		rwc.repaint(); 
		rwc2.repaint(); 
	    }
	
	    if(ie.getSelectedObjects()[0]==" Instructions"){
		//about.setVisible(true);
		instructions.setVisible(true);
		instrFrame.setVisible(true);
	    }
	    if(ie.getSelectedObjects()[0]==" Plot Current Distribution"){
		state.ShowWhich = 3;
		state.ignition();
		//state.scan_coefficients();
		state.scanCurrent();
		    
		rwccq.setYRangeMax(state.currentMAX);
		rwccq.setYRangeMin(-state.currentMAX);
		//rwccq.setYRangeMin(0.0);
		rwccq.plotZeroLine(true);
		rwccq.plotRefPoint(false);
		    
		if(state.currentMAX >= 1.0){
		    rwccq.setLabels("Current Distribution"," [ A ]","z");
		    state.currentNormalization = 1.0;
		}
		else if(state.currentMAX >= 1.0e-3 && state.currentMAX < 1.0){
		    rwccq.setLabels("Current Distribution"," [ mA ]","z");
		    state.currentNormalization = 1.0e3;
		}
		else if(state.currentMAX >= 1.0e-6 && state.currentMAX < 1.0e-3){
		    rwccq.setLabels("Current Distribution"," [ \u00b5A ]","z");
		    state.currentNormalization = 1.0e6;
		}
		else if(state.currentMAX >= 1.0e-9 && state.currentMAX < 1.0e-6){
		    rwccq.setLabels("Current Distribution"," [ nA ]","z");
		    state.currentNormalization = 1.0e9;
		}
		else if(state.currentMAX >= 1.0e-12 && state.currentMAX < 1.0e-9){
		    rwccq.setLabels("Current Distribution"," [ pA ]","z");
		    state.currentNormalization = 1.0e12;
		}
		else if(state.currentMAX < 1.0e-12){
		    rwccq.setLabels("Current Distribution"," [ fA ]","z");
		    state.currentNormalization = 1.0e15;
		}
		rwccq.plot(state.zposLarge,state.currentMLarge,state.currentNormalization,state.currentMIN,state.currentin);
		    
		setPanelVisible(rwccq);
		//setPanelVisible(outputpanel12);  //COMMENT OUT, b/c "Invalid" in java version!!

		setPanelVisible(rwcca); // NEED THIS!!!!
		    
		rwccq.ignition();
		rwccq.repaint();

		rwc.set3D(false);
		rwc.repaint(); 
		rwc2.repaint(); 
	    }
		
	    if(ie.getSelectedObjects()[0]==" Plot Field Distribution"){
		    
		state.ShowWhich = 4;
		state.ignition();
		    
		state.scan3Dfield();
		    		    
		rwccf.setYRangeMax(state.EfieldMax);
		rwccf.setYRangeMin(0.0);
		rwccf.plotZeroLine(false);
		rwccf.plotRefPoint(false);
		rwccf.setPolar(state.IsPolar);
		rwccf.setPhiAngle((int)state.phi_angle);
		rwccf.setType(1);
		rwccf.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
		    
		rwccg.setYRangeMax(state.EfieldphiMax);
		rwccg.setYRangeMin(0.0);
		rwccg.plotZeroLine(false);
		rwccg.plotRefPoint(false);
		rwccg.setPolar(state.IsPolar);
		rwccg.setPhiAngle((int)state.phi_angle);
		rwccg.setType(1);
		rwccg.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
		    
		rwcch.setYRangeMax(state.EfieldRadMax);
		rwcch.setYRangeMin(0.0);
		rwcch.plotZeroLine(false);
		rwcch.plotRefPoint(false);
		rwcch.setPolar(state.IsPolar);
		rwcch.setPhiAngle((int)state.phi_angle);
		rwcch.setType(2);
		rwcch.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
		   
		rwccj.setYRangeMax(state.EfieldphiRadMax);
		rwccj.setYRangeMin(0.0);
		rwccj.plotZeroLine(false);
		rwccj.plotRefPoint(false);
		rwccj.setPolar(state.IsPolar);
		rwccj.setPhiAngle((int)state.phi_angle);
		rwccj.setType(2);
		rwccj.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
		    
		rwcck.setYRangeMax(state.EfieldCartxMax);
		rwcck.setYRangeMin(0.0);
		rwcck.plotZeroLine(false);
		rwcck.plotRefPoint(false);
		rwcck.setPolar(state.IsPolar);
		rwcck.setPhiAngle((int)state.phi_angle);
		rwcck.setType(3);
		rwcck.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
		    
		rwccl.setYRangeMax(state.EfieldCartyMax);
		rwccl.setYRangeMin(0.0);
		rwccl.plotZeroLine(false);
		rwccl.plotRefPoint(false);
		rwccl.setPolar(state.IsPolar);
		rwccl.setPhiAngle((int)state.phi_angle);
		rwccl.setType(4);
		rwccl.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
		    
		rwccm.setYRangeMax(state.EfieldCartzMax);
		rwccm.setYRangeMin(0.0);
		rwccm.plotZeroLine(false);
		rwccm.plotRefPoint(false);
		rwccm.setPolar(state.IsPolar);
		rwccm.setPhiAngle((int)state.phi_angle);
		rwccm.setType(5);
		rwccm.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
		    
		rwccn.setYRangeMax(state.EfieldCart2xMax);
		rwccn.setYRangeMin(0.0);
		rwccn.plotZeroLine(false);
		rwccn.plotRefPoint(false);
		rwccn.setPolar(state.IsPolar);
		rwccn.setPhiAngle((int)state.phi_angle);
		rwccn.setType(3);
		rwccn.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
		    
		rwcco.setYRangeMax(state.EfieldCart2yMax);
		rwcco.setYRangeMin(0.0);
		rwcco.plotZeroLine(false);
		rwcco.plotRefPoint(false);
		rwcco.setPolar(state.IsPolar);
		rwcco.setPhiAngle((int)state.phi_angle);
		rwcco.setType(4);
		rwcco.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
		    
		rwccp.setYRangeMax(state.EfieldCart2zMax);
		rwccp.setYRangeMin(0.0);
		rwccp.plotZeroLine(false);
		rwccp.plotRefPoint(false);
		rwccp.setPolar(state.IsPolar);
		rwccp.setPhiAngle((int)state.phi_angle);
		rwccp.setType(5);
		rwccp.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
		    
		rwccr.setYRangeMax(state.HfieldMax);
		rwccr.setYRangeMin(0.0);
		rwccr.plotZeroLine(false);
		rwccr.plotRefPoint(false);
		rwccr.setPolar(state.IsPolar);
		rwccr.setPhiAngle((int)state.phi_angle);
		rwccr.setType(6);
		rwccr.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","A/m","\u03b8  [degrees]");
		    
		rwccs.setYRangeMax(state.HfieldphiMax);
		rwccs.setYRangeMin(0.0);
		rwccs.plotZeroLine(false);
		rwccs.plotRefPoint(false);
		rwccs.setPolar(state.IsPolar);
		rwccs.setPhiAngle((int)state.phi_angle);
		rwccs.setType(6);
		rwccs.setLabels("\u03b8 = 90.0\u00ba plane","A/m","\u03c6  [degrees]");
		    
		rwcct.setYRangeMax(state.HfieldCartxMax);
		rwcct.setYRangeMin(0.0);
		rwcct.plotZeroLine(false);
		rwcct.plotRefPoint(false);
		rwcct.setPolar(state.IsPolar);
		rwcct.setPhiAngle((int)state.phi_angle);
		rwcct.setType(7);
		rwcct.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","A/m","\u03b8  [degrees]");
		    
		rwccu.setYRangeMax(state.HfieldCart2xMax);
		rwccu.setYRangeMin(0.0);
		rwccu.plotZeroLine(false);
		rwccu.plotRefPoint(false);
		rwccu.setPolar(state.IsPolar);
		rwccu.setPhiAngle((int)state.phi_angle);
		rwccu.setType(7);
		rwccu.setLabels("\u03b8 = 90.0\u00ba plane","A/m","\u03c6  [degrees]");
		    
		rwccv.setYRangeMax(state.HfieldCartyMax);
		rwccv.setYRangeMin(0.0);
		rwccv.plotZeroLine(false);
		rwccv.plotRefPoint(false);
		rwccv.setPolar(state.IsPolar);
		rwccv.setPhiAngle((int)state.phi_angle);
		rwccv.setType(8);
		rwccv.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","A/m","\u03b8  [degrees]");
		    
		rwccw.setYRangeMax(state.HfieldCart2yMax);
		rwccw.setYRangeMin(0.0);
		rwccw.plotZeroLine(false);
		rwccw.plotRefPoint(false);
		rwccw.setPolar(state.IsPolar);
		rwccw.setPhiAngle((int)state.phi_angle);
		rwccw.setType(8);
		rwccw.setLabels("\u03b8 = 90.0\u00ba plane","A/m","\u03c6  [degrees]");
		    
		state.Is_theta = true;
		state.Is_radius = false;
		    
		rwc.set3D(true);
		rwc.repaint();
		rwc2.repaint();
		    
		rwccf.plot(state.x_polar,state.ethetaM);
		rwcch.plot(state.x_polar,state.eradM);
		rwccg.plot(state.x_polar,state.ephiM);
		rwccj.plot(state.x_polar,state.ephiradM);
		rwccr.plot(state.x_polar,state.hphigenM);
		rwccs.plot(state.x_polar,state.hphiM);
		    
		rwcck.plot(state.x_polar,state.ex);
		rwccl.plot(state.x_polar,state.ey);
		rwccm.plot(state.x_polar,state.ez);
		rwccn.plot(state.x_polar,state.ephix);
		rwcco.plot(state.x_polar,state.ephiy);
		rwccp.plot(state.x_polar,state.ephiz);
		rwcct.plot(state.x_polar,state.hx);
		rwccu.plot(state.x_polar,state.hphix);
		rwccv.plot(state.x_polar,state.hy);
		rwccw.plot(state.x_polar,state.hphiy);
		    
		// CHANGE ==================================================
		//int xmove = s10;
		//int ymove = s30;
		//==========================================================
                    
		//cp3D.setBounds(s300+s17+xmove,s56+ymove,s200+s96,s198); // put it back here for MAC - MAC sucks!!!
		setPanelVisible(cp3D);
		//setPanelVisible(rwc2,false);

		cp3D.show_spher1 = true;
		cp3D.show_spher2 = false;
		cp3D.show_spher3 = false;
		cp3D.show_cart1 = false;
		cp3D.show_cart2 = false;
		cp3D.show_cart3 = false;
		cp3D.show_cart4 = false;
		cp3D.show_cart5 = false;
		    
		cp3D.show_2D_plots = true;
		cp3D.show_polar_plots = false;
		cp3D.show_data = false;
                    
		cp3D.reset();
		    
		state.IsPolar = false;
		rwccf.setPolar(state.IsPolar);
		rwccg.setPolar(state.IsPolar);
		rwcch.setPolar(state.IsPolar);
		rwccj.setPolar(state.IsPolar);
		rwcck.setPolar(state.IsPolar);
		rwccl.setPolar(state.IsPolar);
		rwccm.setPolar(state.IsPolar);
		rwccn.setPolar(state.IsPolar);
		rwcco.setPolar(state.IsPolar);
		rwccp.setPolar(state.IsPolar);
		rwccr.setPolar(state.IsPolar);
		rwccs.setPolar(state.IsPolar);
		rwcct.setPolar(state.IsPolar);
		rwccu.setPolar(state.IsPolar);
		rwccv.setPolar(state.IsPolar);
		rwccw.setPolar(state.IsPolar);
		    
		plotPanel1 = rwccf;
		plotPanel2 = rwccg;
		setPanelVisible(rwccf);
		setPanelVisible(rwccg);
		    
		rwccf.ignition();
		rwccf.repaint();
		rwccg.ignition();
		rwccg.repaint();
		rwcch.ignition();
		rwcch.repaint();
		rwccj.ignition();
		rwccj.repaint();
		rwcck.ignition();
		rwcck.repaint();
		rwccl.ignition();
		rwccl.repaint();
		rwccm.ignition();
		rwccm.repaint();
		rwccn.ignition();
		rwccn.repaint();
		rwcco.ignition();
		rwcco.repaint();
		rwccp.ignition();
		rwccp.repaint();
		rwccr.ignition();
		rwccr.repaint();
		rwccs.ignition();
		rwccs.repaint();
		rwcct.ignition();
		rwcct.repaint();
		rwccu.ignition();
		rwccu.repaint();
		rwccv.ignition();
		rwccv.repaint();
		rwccw.ignition();
		rwccw.repaint();

		outputpanel2.rwocC.repaint_data();
		outputpanel2.rwocD.repaint_data();
		
		outputpanel2.tcanvas.repaint();
		outputpanel3.rwocE.repaint_data();
		outputpanel3.rwocF.repaint_data();
		outputpanel3.tcanvas2.repaint();
		outputpanel4.rwocG.repaint_data();
		outputpanel4.rwocH.repaint_data();
		outputpanel4.tcanvas3.repaint();
		outputpanel5.rwocI.repaint_data();
		outputpanel5.rwocJ.repaint_data();
		outputpanel5.tcanvas4.repaint();
		outputpanel6.rwocK.repaint_data();
		outputpanel6.rwocL.repaint_data();
		outputpanel6.tcanvas5.repaint();
		outputpanel7.rwocM.repaint_data();
		outputpanel7.rwocN.repaint_data();
		outputpanel7.tcanvas6.repaint();
		outputpanel8.rwocO.repaint_data();
		outputpanel8.rwocP.repaint_data();
		outputpanel8.tcanvas7.repaint();
		outputpanel9.rwocQ.repaint_data();
		outputpanel9.rwocR.repaint_data();
		outputpanel9.tcanvas8.repaint();
		outputpanel10.rwocS.repaint_data();
		outputpanel10.rwocT.repaint_data();
		outputpanel10.tcanvas9.repaint();
		outputpanel11.rwocU.repaint_data();
		outputpanel11.rwocV.repaint_data();
		outputpanel11.tcanvas10.repaint();
		outputpanel13.rwoc6P.repaint_data();
		outputpanel13.rwoc7P.repaint_data();
		outputpanel13.tcanvas12.repaint();
		outputpanel14.rwoc8P.repaint_data();
		outputpanel14.rwoc9P.repaint_data();
		outputpanel14.tcanvas13.repaint();
		outputpanel15.rwoc10P.repaint_data();
		outputpanel15.rwoc11P.repaint_data();
		outputpanel15.tcanvas14.repaint();
		outputpanel16.rwoc12P.repaint_data();
		outputpanel16.rwoc13P.repaint_data();
		outputpanel16.tcanvas15.repaint();
		outputpanel17.rwoc14P.repaint_data();
		outputpanel17.rwoc15P.repaint_data();
		outputpanel17.tcanvas16.repaint();
		outputpanel18.rwoc16P.repaint_data();
		outputpanel18.rwoc17P.repaint_data();
		outputpanel18.tcanvas17.repaint();
	    }
	}
    }// END FUNCTION itemStateChanged


	
	private void update3D() {
	    try{
		if(Double.valueOf(cp3D.text3.getText()).doubleValue()>=0.0 && 
		   Double.valueOf(cp3D.text3.getText()).doubleValue()<=state.distance_maximum){
		    state.point_distance=Double.valueOf(cp3D.text3.getText()).doubleValue();
		    state.distance = state.point_distance * state.wavelength;
		}
		else if(Double.valueOf(cp3D.text3.getText()).doubleValue()>state.distance_maximum){
		    state.point_distance=state.distance_maximum;
		    state.distance = state.point_distance * state.wavelength;
		    cp3D.text3.setText(""+state.point_distance);
		}
		else{
		    state.point_distance=0.0;
		    state.distance=0.0;
		    cp3D.text3.setText(""+state.point_distance);
		}
	    } 
	    catch(NumberFormatException e){
		state.point_distance = 0.0;
	    }
	    
	    state.phi_angle = cp3D.slider1.getValue();
	    inputpanel2.slider3.setValue((int)(inputpanel2.ScrollMax2*(state.phi_angle-state.phi_minimum)/
					       (state.phi_maximum-state.phi_minimum)));
	    inputpanel2.slider30.setValue(0);
	    inputpanel2.text2.setText(""+MaestroA.rounder(state.phi_angle,7));
	    
	    state.ignition();
	    state.scan3Dfield();
	    
	    rwccf.setYRangeMax(state.EfieldMax);
	    rwccf.setYRangeMin(0.0);
	    rwccf.plotZeroLine(false);
	    rwccf.plotRefPoint(false);
	    rwccf.setPolar(state.IsPolar);
	    rwccf.setPhiAngle((int)state.phi_angle);
	    rwccf.setType(1);
	    rwccf.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
	    rwccg.setYRangeMax(state.EfieldphiMax);
	    rwccg.setYRangeMin(0.0);
	    rwccg.plotZeroLine(false);
	    rwccg.plotRefPoint(false);
	    rwccg.setPolar(state.IsPolar);
	    rwccg.setPhiAngle((int)state.phi_angle);
	    rwccg.setType(1);
	    rwccg.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
	    
	    rwcch.setYRangeMax(state.EfieldRadMax);
	    rwcch.setYRangeMin(0.0);
	    rwcch.plotZeroLine(false);
	    rwcch.plotRefPoint(false);
	    rwcch.setPolar(state.IsPolar);
	    rwcch.setPhiAngle((int)state.phi_angle);
	    rwcch.setType(2);
	    rwcch.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
	    
	    rwccj.setYRangeMax(state.EfieldphiRadMax);
	    rwccj.setYRangeMin(0.0);
	    rwccj.plotZeroLine(false);
	    rwccj.plotRefPoint(false);
	    rwccj.setPolar(state.IsPolar);
	    rwccj.setPhiAngle((int)state.phi_angle);
	    rwccj.setType(2);
	    rwccj.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
	    
	    rwcck.setYRangeMax(state.EfieldCartxMax);
	    rwcck.setYRangeMin(0.0);
	    rwcck.plotZeroLine(false);
	    rwcck.plotRefPoint(false);
	    rwcck.setPolar(state.IsPolar);
	    rwcck.setPhiAngle((int)state.phi_angle);
	    rwcck.setType(3);
	    rwcck.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
	    
	    rwccl.setYRangeMax(state.EfieldCartyMax);
	    rwccl.setYRangeMin(0.0);
	    rwccl.plotZeroLine(false);
	    rwccl.plotRefPoint(false);
	    rwccl.setPolar(state.IsPolar);
	    rwccl.setPhiAngle((int)state.phi_angle);
	    rwccl.setType(4);
	    rwccl.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
	    
	    rwccm.setYRangeMax(state.EfieldCartzMax);
	    rwccm.setYRangeMin(0.0);
	    rwccm.plotZeroLine(false);
	    rwccm.plotRefPoint(false);
	    rwccm.setPolar(state.IsPolar);
	    rwccm.setPhiAngle((int)state.phi_angle);
	    rwccm.setType(5);
	    rwccm.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
	    
	    rwccn.setYRangeMax(state.EfieldCart2xMax);
	    rwccn.setYRangeMin(0.0);
	    rwccn.plotZeroLine(false);
	    rwccn.plotRefPoint(false);
	    rwccn.setPolar(state.IsPolar);
	    rwccn.setPhiAngle((int)state.phi_angle);
	    rwccn.setType(3);
	    rwccn.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
	    
	    rwcco.setYRangeMax(state.EfieldCart2yMax);
	    rwcco.setYRangeMin(0.0);
	    rwcco.plotZeroLine(false);
	    rwcco.plotRefPoint(false);
	    rwcco.setPolar(state.IsPolar);
	    rwcco.setPhiAngle((int)state.phi_angle);
	    rwcco.setType(4);
	    rwcco.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
	    
	    rwccp.setYRangeMax(state.EfieldCart2zMax);
	    rwccp.setYRangeMin(0.0);
	    rwccp.plotZeroLine(false);
	    rwccp.plotRefPoint(false);
	    rwccp.setPolar(state.IsPolar);
	    rwccp.setPhiAngle((int)state.phi_angle);
	    rwccp.setType(5);
	    rwccp.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
	    
	    rwccr.setYRangeMax(state.HfieldMax);
	    rwccr.setYRangeMin(0.0);
	    rwccr.plotZeroLine(false);
	    rwccr.plotRefPoint(false);
	    rwccr.setPolar(state.IsPolar);
	    rwccr.setPhiAngle((int)state.phi_angle);
	    rwccr.setType(6);
	    rwccr.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
	    
	    rwccs.setYRangeMax(state.HfieldphiMax);
	    rwccs.setYRangeMin(0.0);
	    rwccs.plotZeroLine(false);
	    rwccs.plotRefPoint(false);
	    rwccs.setPolar(state.IsPolar);
	    rwccs.setPhiAngle((int)state.phi_angle);
	    rwccs.setType(6);
	    rwccs.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
	    
	    //-------------------------------------------  new: H cartesian components
	    rwcct.setYRangeMax(state.HfieldCartxMax);
	    rwcct.setYRangeMin(0.0);
	    rwcct.plotZeroLine(false);
	    rwcct.plotRefPoint(false);
	    rwcct.setPolar(state.IsPolar);
	    rwcct.setPhiAngle((int)state.phi_angle);
	    rwcct.setType(7);
	    rwcct.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
	    
	    rwccu.setYRangeMax(state.HfieldCart2xMax);
	    rwccu.setYRangeMin(0.0);
	    rwccu.plotZeroLine(false);
	    rwccu.plotRefPoint(false);
	    rwccu.setPolar(state.IsPolar);
	    rwccu.setPhiAngle((int)state.phi_angle);
	    rwccu.setType(7);
	    rwccu.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
	    
	    rwccv.setYRangeMax(state.HfieldCartyMax);
	    rwccv.setYRangeMin(0.0);
	    rwccv.plotZeroLine(false);
	    rwccv.plotRefPoint(false);
	    rwccv.setPolar(state.IsPolar);
	    rwccv.setPhiAngle((int)state.phi_angle);
	    rwccv.setType(8);
	    rwccv.setLabels("\u03c6 = "+((int)state.phi_angle)+"\u00ba plane","V/m","\u03b8  [degrees]");
	    
	    rwccw.setYRangeMax(state.HfieldCart2yMax);
	    rwccw.setYRangeMin(0.0);
	    rwccw.plotZeroLine(false);
	    rwccw.plotRefPoint(false);
	    rwccw.setPolar(state.IsPolar);
	    rwccw.setPhiAngle((int)state.phi_angle);
	    rwccw.setType(8);
	    rwccw.setLabels("\u03b8 = 90.0\u00ba plane","V/m","\u03c6  [degrees]");
	    
	    //---------------------------------------------------------
	    
	    state.Is_theta = true;
	    state.Is_radius = false;
	    
	    rwccf.plot(state.x_polar,state.ethetaM);
	    rwcch.plot(state.x_polar,state.eradM);
	    rwccg.plot(state.x_polar,state.ephiM);
	    rwccj.plot(state.x_polar,state.ephiradM);
	    rwccr.plot(state.x_polar,state.hphigenM);
	    rwccs.plot(state.x_polar,state.hphiM);
	    
	    rwcck.plot(state.x_polar,state.ex);
	    rwccl.plot(state.x_polar,state.ey);
	    rwccm.plot(state.x_polar,state.ez);
	    rwccn.plot(state.x_polar,state.ephix);
	    rwcco.plot(state.x_polar,state.ephiy);
	    rwccp.plot(state.x_polar,state.ephiz);
	    rwcct.plot(state.x_polar,state.hx);
	    rwccu.plot(state.x_polar,state.hphix);
	    rwccv.plot(state.x_polar,state.hy);
	    rwccw.plot(state.x_polar,state.hphiy);
	    
	    rwccf.ignition();
	    rwccf.repaint();
	    rwccg.ignition();
	    rwccg.repaint();
	    rwcch.ignition();
	    rwcch.repaint();
	    rwccj.ignition();
	    rwccj.repaint();
	    rwcck.ignition();
	    rwcck.repaint();
	    rwccl.ignition();
	    rwccl.repaint();
	    rwccm.ignition();
	    rwccm.repaint();
	    rwccn.ignition();
	    rwccn.repaint();
	    rwcco.ignition();
	    rwcco.repaint();
	    rwccp.ignition();
	    rwccp.repaint();
	    rwccr.ignition();
	    rwccr.repaint();
	    rwccs.ignition();
	    rwccs.repaint();
	    rwcct.ignition();
	    rwcct.repaint();
	    rwccu.ignition();
	    rwccu.repaint();
	    rwccv.ignition();
	    rwccv.repaint();
	    rwccw.ignition();
	    rwccw.repaint();
	    
	    rwc.set3D(true);
	    rwc.repaint();
	    
	    rwc2.setFrequency(state.frequency);
	    rwc2.setEpsilon(state.epsilon_r);
	    rwc2.setWavelength(state.wavelength);
	    rwc2.setTheta(state.theta_angle);
	    rwc2.setPhi(state.phi_angle);
	    rwc2.setDistance(state.point_distance);
	    
	    rwc2.repaint();
	    
	    outputpanel2.rwocC.repaint_data();
	    outputpanel2.rwocD.repaint_data();
	    outputpanel2.tcanvas.repaint();
	    outputpanel3.rwocE.repaint_data();
	    outputpanel3.rwocF.repaint_data();
	    outputpanel3.tcanvas2.repaint();
	    outputpanel4.rwocG.repaint_data();
	    outputpanel4.rwocH.repaint_data();
	    outputpanel4.tcanvas3.repaint();
	    outputpanel5.rwocI.repaint_data();
	    outputpanel5.rwocJ.repaint_data();
	    outputpanel5.tcanvas4.repaint();
	    outputpanel6.rwocK.repaint_data();
	    outputpanel6.rwocL.repaint_data();
	    outputpanel6.tcanvas5.repaint();
	    outputpanel7.rwocM.repaint_data();
	    outputpanel7.rwocN.repaint_data();
	    outputpanel7.tcanvas6.repaint();
	    outputpanel8.rwocO.repaint_data();
	    outputpanel8.rwocP.repaint_data();
	    outputpanel8.tcanvas7.repaint();
	    outputpanel9.rwocQ.repaint_data();
	    outputpanel9.rwocR.repaint_data();
	    outputpanel9.tcanvas8.repaint();
	    outputpanel10.rwocS.repaint_data();
	    outputpanel10.rwocT.repaint_data();
	    outputpanel10.tcanvas9.repaint();
	    outputpanel11.rwocU.repaint_data();
	    outputpanel11.rwocV.repaint_data();
	    outputpanel11.tcanvas10.repaint();
	    outputpanel13.rwoc6P.repaint_data();
	    outputpanel13.rwoc7P.repaint_data();
	    outputpanel13.tcanvas12.repaint();
	    outputpanel14.rwoc8P.repaint_data();
	    outputpanel14.rwoc9P.repaint_data();
	    outputpanel14.tcanvas13.repaint();
	    outputpanel15.rwoc10P.repaint_data();
	    outputpanel15.rwoc11P.repaint_data();
	    outputpanel15.tcanvas14.repaint();
	    outputpanel16.rwoc12P.repaint_data();
	    outputpanel16.rwoc13P.repaint_data();
	    outputpanel16.tcanvas15.repaint();
	    outputpanel17.rwoc14P.repaint_data();
	    outputpanel17.rwoc15P.repaint_data();
	    outputpanel17.tcanvas16.repaint();
	    outputpanel18.rwoc16P.repaint_data();
	    outputpanel18.rwoc17P.repaint_data();
	    outputpanel18.tcanvas17.repaint();
	    
	    inputpanel2.text4.setText(""+state.point_distance);
	    inputpanel2.slider2.setValue((int)((state.point_distance-state.distance_minimum)*inputpanel2.ScrollMax/(state.distance_maximum-state.distance_minimum)));
	    inputpanel2.repaint();
	    
	}// end-func update3D()


    class DataPanelThread extends Thread {

	public void run() {
            
	    if(cp3D.show_spher1){
		setPanelVisible(outputpanel2);
		setPanelVisible(outputpanel3);
	    } else if (cp3D.show_spher2){
		setPanelVisible(outputpanel4);
		setPanelVisible(outputpanel5);
	    } else if (cp3D.show_spher3){
		setPanelVisible(outputpanel13);
		setPanelVisible(outputpanel14);
	    } else if (cp3D.show_cart1){
		setPanelVisible(outputpanel6);
		setPanelVisible(outputpanel7);
	    } else if (cp3D.show_cart2){
		setPanelVisible(outputpanel8);
		setPanelVisible(outputpanel9);
	    } else if (cp3D.show_cart3){
		setPanelVisible(outputpanel10);
		setPanelVisible(outputpanel11);
	    } else if (cp3D.show_cart4){
		setPanelVisible(outputpanel15);
		setPanelVisible(outputpanel16);

		outputpanel15.rwoc10P.repaint_data();
		outputpanel15.rwoc11P.repaint_data();
		outputpanel15.tcanvas14.repaint();
		outputpanel16.rwoc12P.repaint_data();
		outputpanel16.rwoc13P.repaint_data();
		outputpanel16.tcanvas15.repaint();
	    } else if (cp3D.show_cart5){
		setPanelVisible(outputpanel17);
		setPanelVisible(outputpanel18);
                
		outputpanel17.rwoc14P.repaint_data();
		outputpanel17.rwoc15P.repaint_data();
		outputpanel17.tcanvas16.repaint();
		outputpanel18.rwoc16P.repaint_data();
		outputpanel18.rwoc17P.repaint_data();
		outputpanel18.tcanvas17.repaint();
	    }
	    state.IsPolar = false;
	    
	    rwccf.setPolar(state.IsPolar);
	    rwccg.setPolar(state.IsPolar);
	    rwcch.setPolar(state.IsPolar);
	    rwccj.setPolar(state.IsPolar);
	    rwcck.setPolar(state.IsPolar);
	    rwccl.setPolar(state.IsPolar);
	    rwccm.setPolar(state.IsPolar);
	    rwccn.setPolar(state.IsPolar);
	    rwcco.setPolar(state.IsPolar);
	    rwccp.setPolar(state.IsPolar);
	    rwccr.setPolar(state.IsPolar);
	    rwccs.setPolar(state.IsPolar);
	    rwcct.setPolar(state.IsPolar);
	    rwccu.setPolar(state.IsPolar);
	    rwccv.setPolar(state.IsPolar);
	    rwccw.setPolar(state.IsPolar);
	    
	    rwccf.repaint();
	    rwccg.repaint();
	    rwcch.repaint();
	    rwccj.repaint();
	    rwcck.repaint();
	    rwccl.repaint();
	    rwccm.repaint();
	    rwccn.repaint();
	    rwcco.repaint();
	    rwccp.repaint();
	    rwccr.repaint();
	    rwccs.repaint();
	    rwcct.repaint();
	    rwccu.repaint();
	    rwccv.repaint();
	    rwccw.repaint();
	}
    }
}

