Exemple #1
0
        /// <summary>
        /// Implementation for SaveCommand.
        /// Validates all settings and saves them.
        /// </summary>
        private void SaveImplementation()
        {
            if (this.PointsToSmooth != 0 && (this.PointsToSmooth % 2 == 0 || this.PointsToSmooth < 3))
            {
                this.dialogService.MessageBox("Points To Smooth must be an odd number of at least 3. 0 = No smoothing.");
                return;
            }

            if (this.ExportImageDpi < 1)
            {
                this.dialogService.MessageBox("Export Image DPI must be at least 1.");
                return;
            }

            IcParameters.Instance.PrecursorTolerancePpm               = new Tolerance(this.PrecursorIonTolerance, this.PrecursorIonToleranceUnit);
            IcParameters.Instance.ProductIonTolerancePpm              = new Tolerance(this.ProductIonTolerance, this.ProductIonToleranceUnit);
            IcParameters.Instance.IonCorrelationThreshold             = this.IonCorrelationThreshold;
            IcParameters.Instance.PointsToSmooth                      = this.PointsToSmooth;
            IcParameters.Instance.PrecursorRelativeIntensityThreshold = this.PrecursorRelativeIntensityThreshold;
            IcParameters.Instance.ShowInstrumentData                  = this.ShowInstrumentData;
            IcParameters.Instance.AutomaticallySelectIonTypes         = this.AutomaticallySelectIonTypes;
            IcParameters.Instance.CidHcdIonTypes                      = IcParameters.IonTypeStringParse(this.CidHcdIonTypes);
            IcParameters.Instance.EtdIonTypes    = IcParameters.IonTypeStringParse(this.EtdIonTypes);
            IcParameters.Instance.ExportImageDpi = this.ExportImageDpi;

            IcParameters.Instance.FeatureColors = this.FeatureColors.GetOxyColors();
            IcParameters.Instance.IdColors      = this.IdColors.GetOxyColors();
            IcParameters.Instance.Ms2ScanColor  = this.Ms2ScanColor.ToOxyColor();

            var modificationList = this.Modifications.Select(searchModificationVm => searchModificationVm.SearchModification)
                                   .Where(searchModification => searchModification != null).ToList();

            IcParameters.Instance.SearchModifications = modificationList;

            HeavyModificationsViewModel.Save();

            IcParameters.Instance.Update();

            this.Status = true;
            if (this.ReadyToClose != null)
            {
                this.ReadyToClose(this, null);
            }
        }
Exemple #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SettingsViewModel"/> class.
        /// </summary>
        /// <param name="dialogService">Dialog service for opening dialogs from a view model.</param>
        public SettingsViewModel(IMainDialogService dialogService)
        {
            this.dialogService  = dialogService;
            this.ToleranceUnits = new ReactiveList <ToleranceUnit> {
                ToleranceUnit.Ppm, ToleranceUnit.Th
            };
            this.PrecursorIonTolerance               = IcParameters.Instance.PrecursorTolerancePpm.GetValue();
            this.PrecursorIonToleranceUnit           = IcParameters.Instance.PrecursorTolerancePpm.GetUnit();
            this.ProductIonTolerance                 = IcParameters.Instance.ProductIonTolerancePpm.GetValue();
            this.ProductIonToleranceUnit             = IcParameters.Instance.ProductIonTolerancePpm.GetUnit();
            this.IonCorrelationThreshold             = IcParameters.Instance.IonCorrelationThreshold;
            this.PointsToSmooth                      = IcParameters.Instance.PointsToSmooth;
            this.PrecursorRelativeIntensityThreshold = IcParameters.Instance.PrecursorRelativeIntensityThreshold;
            this.ShowInstrumentData                  = IcParameters.Instance.ShowInstrumentData;
            this.AutomaticallySelectIonTypes         = IcParameters.Instance.AutomaticallySelectIonTypes;
            this.CidHcdIonTypes                      = IcParameters.Instance.GetCidHcdIonTypes();
            this.EtdIonTypes    = IcParameters.Instance.GetEtdIonTypes();
            this.ExportImageDpi = IcParameters.Instance.ExportImageDpi;

            this.FeatureColors = new ColorListViewModel();
            this.IdColors      = new ColorListViewModel();

            var oxyScanCol = IcParameters.Instance.Ms2ScanColor;

            this.Ms2ScanColor = new Color {
                A = oxyScanCol.A, R = oxyScanCol.R, G = oxyScanCol.G, B = oxyScanCol.B
            };

            foreach (var color in IcParameters.Instance.FeatureColors)
            {
                this.FeatureColors.ColorViewModels.Add(new ColorViewModel {
                    SelectedColor = new Color {
                        A = color.A, R = color.R, B = color.B, G = color.G
                    }
                });
            }

            foreach (var color in IcParameters.Instance.IdColors)
            {
                this.IdColors.ColorViewModels.Add(new ColorViewModel {
                    SelectedColor = new Color {
                        A = color.A, R = color.R, B = color.B, G = color.G
                    }
                });
            }

            this.Modifications = new ReactiveList <SearchModificationViewModel>();
            foreach (var searchModification in IcParameters.Instance.SearchModifications)
            {
                var modificationVm = new SearchModificationViewModel(searchModification, this.dialogService);
                ////modificationVm.RemoveModificationCommand.Subscribe(_ => this.RemoveModification(modificationVm));
                this.Modifications.Add(modificationVm);
            }

            var addModificationCommand = ReactiveCommand.Create();

            addModificationCommand.Subscribe(_ => this.AddModificationImplementation());
            this.AddModificationCommand = addModificationCommand;

            var createNewModificationCommand = ReactiveCommand.Create();

            createNewModificationCommand.Subscribe(_ => this.CreateNewModificationImplementation());
            this.CreateNewModificationCommand = createNewModificationCommand;

            var saveCommand = ReactiveCommand.Create();

            saveCommand.Subscribe(_ => this.SaveImplementation());
            this.SaveCommand = saveCommand;

            var cancelCommand = ReactiveCommand.Create();

            cancelCommand.Subscribe(_ => this.CancelImplementation());
            this.CancelCommand = cancelCommand;

            HeavyModificationsViewModel = new HeavyModificationsViewModel(dialogService);

            this.Status = false;
        }