Beispiel #1
0
 private void RemoveConfig(SkylineBatchConfig config)
 {
     CheckIfExists(config, true, Operation.Remove);
     _configList.Remove(config);
     _configRunners[config.Name].Cancel();
     _configRunners.Remove(config.Name);
 }
        public SkylineBatchConfigForm(IMainUiControl mainControl, SkylineBatchConfig config, ConfigAction action, bool isBusy)
        {
            InitializeComponent();

            _action         = action;
            _initialCreated = config?.Created ?? DateTime.MinValue;
            _newReportList  = new List <ReportInfo>();

            _mainControl            = mainControl;
            _isBusy                 = isBusy;
            _canEditSkylineSettings = !Installations.HasLocalSkylineCmd;

            InitSkylineTab();
            InitInputFieldsFromConfig(config);

            lblConfigRunning.Hide();

            if (isBusy)
            {
                lblConfigRunning.Show();
                btnSaveConfig.Hide(); // save and cancel buttons are replaced with OK button
                btnCancelConfig.Hide();
                btnOkConfig.Show();
                AcceptButton = btnOkConfig;
                DisableUserInputs();
            }

            ActiveControl = textConfigName;
        }
Beispiel #3
0
        public ConfigRunner(SkylineBatchConfig config, ISkylineBatchLogger logger, IMainUiControl uiControl = null)
        {
            _runnerStatus = RunnerStatus.Stopped;

            Config = config;

            _uiControl = uiControl;

            _logger = logger;
        }
Beispiel #4
0
        private void CheckIfExists(SkylineBatchConfig config, bool expectedValue, Operation typeOperation)
        {
            bool exists = _configRunners.Keys.Contains(config.Name);

            if (exists != expectedValue)
            {
                var message = expectedValue
                        ? string.Format(Resources.ConfigManager_Operation_fail_config_nonexistant, typeOperation.ToString(), config.Name)
                        : string.Format(Resources.ConfigManager_Operation_fail_config_exists, typeOperation.ToString(), config.Name);
                throw new ArgumentException(message);
            }
        }
Beispiel #5
0
        private void InsertConfiguration(SkylineBatchConfig config, int index, Operation operation = Operation.Insert)
        {
            lock (_lock)
            {
                CheckIfExists(config, false, operation);
                Program.LogInfo(string.Format("Adding configuration \"{0}\"", config.Name));
                _configList.Insert(index, config);

                var newRunner = new ConfigRunner(config, _logger, _uiControl);
                _configRunners.Add(config.Name, newRunner);
            }
        }
        private void InitReportsFromConfig(SkylineBatchConfig config)
        {
            if (_action == ConfigAction.Add)
            {
                return;
            }

            foreach (var report in config.ReportSettings.Reports)
            {
                _newReportList.Add(report);
                gridReportSettings.Rows.Add(report.AsArray());
            }
        }
Beispiel #7
0
 public void ReplaceSelectedConfig(SkylineBatchConfig newConfig)
 {
     lock (_lock)
     {
         CheckConfigSelected();
         var oldConfig = _configList[SelectedConfig];
         if (!string.Equals(oldConfig.Name, newConfig.Name))
         {
             CheckIfExists(newConfig, false, Operation.Replace);
         }
         RemoveConfig(oldConfig);
         InsertConfiguration(newConfig, SelectedConfig);
     }
 }
        private void InitInputFieldsFromConfig(SkylineBatchConfig config)
        {
            if (config == null)
            {
                return;
            }

            var mainSettings = config.MainSettings;

            textConfigName.Text    = config.Name;
            textAnalysisPath.Text  = mainSettings.AnalysisFolderPath;
            textNamingPattern.Text = mainSettings.ReplicateNamingPattern;
            InitReportsFromConfig(config);

            if (_action != ConfigAction.Edit)
            {
                textConfigName.Text = "";
                if (_action == ConfigAction.Add)
                {
                    textAnalysisPath.Text  = Path.GetDirectoryName(mainSettings.AnalysisFolderPath) + @"\";
                    textNamingPattern.Text = "";
                }
            }

            textSkylinePath.Text = mainSettings.TemplateFilePath;
            textDataPath.Text    = mainSettings.DataFolderPath;

            textConfigName.TextChanged += textConfigName_TextChanged;

            if (!_canEditSkylineSettings)
            {
                return;
            }

            radioButtonSkyline.Checked            = config.UsesSkyline;
            radioButtonSkylineDaily.Checked       = config.UsesSkylineDaily;
            radioButtonSpecifySkylinePath.Checked = config.UsesCustomSkylinePath;
            if (config.UsesCustomSkylinePath)
            {
                textSkylineInstallationPath.Text = Path.GetDirectoryName(config.SkylineSettings.CmdPath);
            }
            else if (!string.IsNullOrEmpty(Settings.Default.SkylineCustomCmdPath))
            {
                textSkylineInstallationPath.Text = Path.GetDirectoryName(Settings.Default.SkylineCustomCmdPath);
            }
        }
Beispiel #9
0
 protected bool Equals(SkylineBatchConfig other)
 {
     return(string.Equals(Name, other.Name) &&
            Equals(MainSettings, other.MainSettings) &&
            Equals(ReportSettings, other.ReportSettings));
 }
Beispiel #10
0
 public void AddConfiguration(SkylineBatchConfig config)
 {
     configManager.AddConfiguration(config);
     UpdateUiConfigurations();
 }
Beispiel #11
0
 public void EditSelectedConfiguration(SkylineBatchConfig newVersion)
 {
     configManager.ReplaceSelectedConfig(newVersion);
     UpdateUiConfigurations();
 }
Beispiel #12
0
        public void Import(string filePath)
        {
            var readConfigs      = new List <SkylineBatchConfig>();
            var validationErrors = new List <string>();

            try
            {
                using (var stream = new FileStream(filePath, FileMode.Open))
                {
                    using (var reader = XmlReader.Create(stream))
                    {
                        while (reader.Name != "skylinebatch_config")
                        {
                            if (reader.Name == "userSettings" && !reader.IsStartElement()) // there are no configurations in the file
                            {
                                break;
                            }
                            reader.Read();
                        }
                        while (reader.IsStartElement())
                        {
                            if (reader.Name == "skylinebatch_config")
                            {
                                SkylineBatchConfig config = null;
                                try
                                {
                                    config = SkylineBatchConfig.ReadXml(reader);
                                }
                                catch (Exception ex)
                                {
                                    validationErrors.Add(ex.Message);
                                }

                                if (config != null)
                                {
                                    readConfigs.Add(config);
                                }
                            }
                            reader.Read();
                            reader.Read();
                        }
                    }
                }
            }
            catch (Exception)
            {
                DisplayError(Resources.ConfigManager_Import_configs_error_title, string.Format(Resources.ConfigManager_No_configs_imported, filePath));
                return;
            }

            if (readConfigs.Count == 0 && validationErrors.Count == 0)
            {
                DisplayWarning(Resources.ConfigManager_Import_configs_error_title,
                               string.Format(Resources.ConfigManager_No_configs_imported, filePath));
                return;
            }

            var duplicateConfigs = new List <string>();
            var numAdded         = 0;

            foreach (SkylineBatchConfig config in readConfigs)
            {
                // Make sure that the configuration name is unique
                if (_configRunners.Keys.Contains(config.Name))
                {
                    // If a configuration with the same name already exists, don't add it
                    duplicateConfigs.Add(config.Name);
                    continue;
                }

                AddConfiguration(config);
                numAdded++;
            }
            var message = new StringBuilder(Resources.ConfigManager_Number_configs_imported);

            message.Append(numAdded).Append(Environment.NewLine);
            if (duplicateConfigs.Count > 0)
            {
                message.Append(Resources.ConfigManager_Number_configs_duplicates)
                .Append(Environment.NewLine);
                foreach (var name in duplicateConfigs)
                {
                    message.Append("\"").Append(name).Append("\"").Append(Environment.NewLine);
                }
            }
            if (validationErrors.Count > 0)
            {
                message.Append(Resources.ConfigManager_Number_configs_not_valid)
                .Append(Environment.NewLine);
                foreach (var error in validationErrors)
                {
                    message.Append(error).Append(Environment.NewLine);
                }
            }
            DisplayInfo(Resources.ConfigManager_Import_configurations, message.ToString());
        }
Beispiel #13
0
 public void AddConfiguration(SkylineBatchConfig config)
 {
     InsertConfiguration(config, _configList.Count, Operation.Add);
 }