public void LoadTester(XmlDocument xmlDoc, TesterConfigData configData)
        {
            configData.ActiveTester = GetString(xmlDoc, "TesterActive", configData.ActiveTester);
            configData.Timeout = GetInt(xmlDoc, "TesterTimeout", configData.Timeout);
            configData.SimulatorEnabled = GetBool(xmlDoc, "TesterSimulatorEnabled", configData.SimulatorEnabled);
            configData.ClearDefaultBinList();
            configData.AddRangeToDefaultBinList(GetBinList(xmlDoc, "TesterDefaultBinItem"));

            LoadEagle(xmlDoc, configData.Eagle);
            LoadFet(xmlDoc, configData.Fet);
            LoadDts(xmlDoc, configData.Dts);
            LoadPft(xmlDoc, configData.Pft);
            LoadTmt(xmlDoc, configData.Tmt);
            LoadVersatest(xmlDoc, configData.Versatest);
            LoadDualVersatest(xmlDoc, configData.DualVersatest);
            LoadKeithley(xmlDoc, configData.Keithley);
            LoadHp(xmlDoc, configData.Hp);
            LoadMaverick(xmlDoc, configData.Maverick);
            LoadPei(xmlDoc, configData.Pei);
            LoadVirtualTester(xmlDoc, configData.Virtual);
        }
        private void LoadTester(XmlDocument xmlDoc, TesterConfigData configData)
        {
            XmlOldTester xmlTester = new XmlOldTester();
            xmlTester.LoadConfig(xmlDoc);

            configData.ActiveTester = xmlTester.ActiveTester;
            configData.Timeout = xmlTester.Timeout;
            configData.SimulatorEnabled = xmlTester.SimulatorEnabled;

            LoadDts(xmlDoc, configData.Dts);
            LoadEagle(xmlDoc, configData.Eagle);
            LoadFet(xmlDoc, configData.Fet);
            LoadPft(xmlDoc, configData.Pft);
            LoadTmt(xmlDoc, configData.Tmt);
            LoadKeithley(xmlDoc, configData.Keithley);
            LoadHp(xmlDoc, configData.Hp);
            LoadMaverick(xmlDoc, configData.Maverick);
            LoadPei(xmlDoc, configData.Pei);
            LoadVirtualTester(xmlDoc, configData.Virtual);
        }
        private void SaveTester(XmlDocument xmlDoc, TesterConfigData configData)
        {
            XmlOldTester xmlTester = new XmlOldTester();

            xmlTester.ActiveTester = configData.ActiveTester;
            xmlTester.Timeout = configData.Timeout;
            xmlTester.SimulatorEnabled = configData.SimulatorEnabled;

            SaveDts(xmlDoc, configData.Dts);
            SaveEagle(xmlDoc, configData.Eagle);
            SaveFet(xmlDoc, configData.Fet);
            SavePft(xmlDoc, configData.Pft);
            SaveTmt(xmlDoc, configData.Tmt);
            SaveKeithley(xmlDoc, configData.Keithley);
            SaveHp(xmlDoc, configData.Hp);
            SaveMaverick(xmlDoc, configData.Maverick);
            SavePei(xmlDoc, configData.Pei);
            SaveVirtualTester(xmlDoc, configData.Virtual);

            xmlTester.SaveConfig(xmlDoc);
        }
        private string wsConfigVersion = "3.2.6"; // only default value... real value is defined in AssemblyInfo.cs

        #endregion Fields

        #region Constructors

        public ConfigData(string startupDir)
        {
            _childList = new List<IBaseConfigData>();

            DirectoryInfo di = new DirectoryInfo(startupDir);
            string rootMapperDir = di.Parent.FullName;

            _configConfigData = new ConfigConfigData(startupDir);
            _generalConfigData = new GeneralConfigData();
            _dirConfigData = new DirConfigData(rootMapperDir);
            _envGeneralConfigData = new EnvGeneralConfigData();
            _colorConfigData = new ColorConfigData();
            _dialogConfigData = new DialogConfigData();
            _eventConfigData = new EventConfigData(rootMapperDir);
            _wmxmlConfigData = new WmxmlConfigData(rootMapperDir);
            _genesisConfigData = new GenesisConfigData();
            _checkinConfigData = new CheckinConfigData();
            _lotSearchConfigData = new LotSearchConfigData();
            _processMethodConfigData = new ProcessMethodConfigData();
            _customScriptConfigData = new CustomScriptConfigData();
            _newtonConfigData = new NewtonConfigData(rootMapperDir);
            _rtmConfigData = new RtmConfigData(rootMapperDir);
            _probeInTempConfigData = new ProbeInTempConfigData();
            _hotKeysConfigData = new HotKeysConfigData();

            _consecutiveFailConfigData = new ConsecutiveFailConfigData();
            _cutoffConfigData = new CutoffConfigData();
            _kelvinDieConfigData = new KelvinDieConfigData();
            _laserscribeConfigData = new LaserscribeConfigData();
            _reprobeConfigData = new ReprobeConfigData();
            _incompleteProbeConfigData = new IncompleteProbeConfigData();
            _shiftedAlignmentConfigData = new ShiftedAlignmentConfigData();

            _proberConfigData = new ProberConfigData();
            _testerConfigData = new TesterConfigData();

            _lotInfoConfigData = new LotInfoConfigData();

            _childList.Add(_configConfigData as IBaseConfigData);
            _childList.Add(_generalConfigData as IBaseConfigData);
            _childList.Add(_wmxmlConfigData as IBaseConfigData);
            _childList.Add(_envGeneralConfigData as IBaseConfigData);
            _childList.Add(_colorConfigData as IBaseConfigData);
            _childList.Add(_dialogConfigData as IBaseConfigData);
            _childList.Add(_eventConfigData as IBaseConfigData);
            _childList.Add(_dirConfigData as IBaseConfigData);
            _childList.Add(_genesisConfigData as IBaseConfigData);
            _childList.Add(_checkinConfigData as IBaseConfigData);
            _childList.Add(_lotSearchConfigData as IBaseConfigData);
            _childList.Add(_processMethodConfigData as IBaseConfigData);
            _childList.Add(_customScriptConfigData as IBaseConfigData);
            _childList.Add(_newtonConfigData as IBaseConfigData);
            _childList.Add(_rtmConfigData as IBaseConfigData);
            _childList.Add(_probeInTempConfigData as IBaseConfigData);
            _childList.Add(_hotKeysConfigData as IBaseConfigData);

            _childList.Add(_consecutiveFailConfigData as IBaseConfigData);
            _childList.Add(_cutoffConfigData as IBaseConfigData);
            _childList.Add(_kelvinDieConfigData as IBaseConfigData);
            _childList.Add(_laserscribeConfigData as IBaseConfigData);
            _childList.Add(_reprobeConfigData as IBaseConfigData);
            _childList.Add(_incompleteProbeConfigData as IBaseConfigData);
            _childList.Add(_shiftedAlignmentConfigData as IBaseConfigData);
            _childList.Add(_proberConfigData as IBaseConfigData);
            _childList.Add(_testerConfigData as IBaseConfigData);

            _childList.Add(_lotInfoConfigData as IBaseConfigData);

            _configCache = new ConfigCache(this);
        }